我正在创建一个游戏,在开始时,球需要在html画布上随机选择,但所有方法的速度都相同。这不是我所需要的:随机速度矢量公式
vx = Math.floor(Math.random() * 20)
vy = Math.floor(Math.random() * 20)
因为它不会给出恒定的速度。 你能想出一个公式吗? 谢谢。
我正在创建一个游戏,在开始时,球需要在html画布上随机选择,但所有方法的速度都相同。这不是我所需要的:随机速度矢量公式
vx = Math.floor(Math.random() * 20)
vy = Math.floor(Math.random() * 20)
因为它不会给出恒定的速度。 你能想出一个公式吗? 谢谢。
所以你想要一个随机方向的恒定速度?然后使用
phi = 2*Math.PI*Math.random();
vx = speed * Math.cos(phi);
vy = speed * Math.sin(phi);
我假设你在Java中工作并想要一个幅度为20的随机向量?
首先,你的矢量并不是真正的随机开始。 Math.random()会生成一个介于0和1之间的正数,因此您的矢量始终指向坐标系统的同一象限(两个坐标均为正数)。我想你想要的是类似的Math.random()* 2 - 1到-1和1
二之间建立坐标系,你需要你的正常化载体:http://mathworld.wolfram.com/NormalizedVector.html
最后,乘两个向量坐标按照你想要的矢量的大小,在你的情况下20,可能。
出于某种原因,对我而言,它不会始终保持恒定速度 – kcode
您将不得不记录下速度矢量旁边会发生什么。 (并且可能如何测量标量速度。) – LutzL