我正在创建一个游戏,在开始时,球需要在html画布上随机进行,但所有方式都具有相同的速度。这不是我需要的:
vx = Math.floor(Math.random() * 20)
vy = Math.floor(Math.random() * 20)
因为它不会给出恒定的速度。 你能想出一个公式吗? 感谢。
答案 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。