设定2D向量的大小

Duc*_*tor 1 math lua vector roblox magnitude

尝试使用p5.js库移植我在javascript中制作的内容,该库具有用于2D矢量的setMag函数

这是文档

如何设置ROBLOX / lua中2D向量的大小?

function particle:update(mouseX,mouseY)
    local t=(Vector2.new(mouseX,mouseY)-(self.pos)).unit.setMag(self.acc)
    self.thrust=t
    self.vel = self.vel + self.thrust
    if self.vel.magnitude>self.maxspeed then
          self.vel.unit.setMag(self.maxspeed)
    end
    self.pos=self.pos+(self.vel)
    self.frame.Position=UDim2.new(0,self.pos.x,0,self.pos.y)
end
Run Code Online (Sandbox Code Playgroud)

MBo*_*MBo 6

让我们向量分量为vx, vy。目前的大小是

Mag = Math.Sqrt(vx * vx + vy * vy)
//as Piglet noticed in comment, you can use magnitude property
Run Code Online (Sandbox Code Playgroud)

要使向量具有相同方向但改变幅度,只需将分量乘以幅度比即可:

new_vx = vx * New_Mag / Mag
new_vy = vy * New_Mag / Mag
Run Code Online (Sandbox Code Playgroud)