随机速度矢量公式

时间:2017-06-20 06:23:08

标签: javascript html physics

我正在创建一个游戏,在开始时,球需要在html画布上随机进行,但所有方式都具有相同的速度。这不是我需要的:

vx = Math.floor(Math.random() * 20)
vy = Math.floor(Math.random() * 20)

因为它不会给出恒定的速度。 你能想出一个公式吗? 感谢。

2 个答案:

答案 0 :(得分:2)

所以你想要一个随机方向的恒定速度?然后使用

phi = 2*Math.PI*Math.random();
vx = speed * Math.cos(phi);
vy = speed * Math.sin(phi);

答案 1 :(得分:0)

我假设您使用Java工作并且想要一个幅度为20的随机向量

首先,你的矢量开始时并不是真正随机的。 Math.random()产生一个介于0和1之间的正数,因此矢量始终指向坐标系的同一象限(两个坐标均为正)。我想你想要的是像Math.random()* 2 - 1那样创建-1和1之间的坐标。

其次,您需要规范化向量:http://mathworld.wolfram.com/NormalizedVector.html

最后,将两个矢量坐标乘以你想要矢量的幅度,在你的情况下可能是20。