math - 设置二维向量的大小

标签 math vector lua roblox magnitude

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

这是 documentation for it

如何在 ROBLOX/lua 中设置二维向量的大小?

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

最佳答案

让我们的向量分量是vx, vy。它的电流大小是

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

要使向量具有相同的方向但改变大小,只需将分量乘以大小的比率:

new_vx = vx * New_Mag / Mag
new_vy = vy * New_Mag / Mag

关于math - 设置二维向量的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317291/

相关文章:

C++ 索引语法 : two libraries use different indexing syntax: 0 based and 1 based index

c++ - Gnuplot:跳过最后/不完整的数据文件行

c++ - Lua 5.2 问题 : 'attempt to call a nil value' from lua_pcall

c - 需要数学/bignum 挑战的帮助

algorithm - 生成和算法

c++ - C++ Headers可以叫vector.h还是matrix.h?

r - 从聚合满足条件的列表中查找 n 个元组

string - 在lua中将字符串转换为十六进制?

android - 纬度/经度和米

r - 如何在 r 中绘制多个图,每个图对应一个需要与另一个向量创建坐标的向量?