将矢量缩放到零?

时间:2014-03-17 14:35:46

标签: java math vector scale velocity

在程序中我有移动的物体。他们的velocyties用Vector(x,y)描述 因此,我希望对象减速 - 如果他们因为碰撞而获得速度,我会在下一帧中缩小它们(因子为0.999)直到它们停止,因为速度很小,你看不到它们在移动(java得到1e-50或者像那样)。

它的工作,但实际上它不正确,因为缩小它们在理论上永远不会停止。那么我怎样才能让速度变为零,让它 REACH 为零?

1 个答案:

答案 0 :(得分:1)

一旦低于某个阈值,只需将其设置为零:

if (velocity.magnitude() < threshold) {
    velocity = new Vector(0, 0);
}

然而,由于算术下溢, 最终会自行发生。