2017-06-20 66 views
0

我正在創建一個遊戲,在開始時,球需要在html畫布上隨機選擇,但所有方法的速度都相同。這不是我所需要的:隨機速度矢量公式

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

因爲它不會給出恆定的速度。 你能想出一個公式嗎? 謝謝。

回答

2

所以你想要一個隨機方向的恆定速度?然後使用

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

出於某種原因,對我而言,它不會始終保持恆定速度 – kcode

+0

您將不得不記錄下速度矢量旁邊會發生什麼。 (並且可能如何測量標量速度。) – LutzL

0

我假設你在Java中工作並想要一個幅度爲20的隨機向量?

首先,你的矢量並不是真正的隨機開始。 Math.random()會生成一個介於0和1之間的正數,因此您的矢量始終指向座標系統的同一象限(兩個座標均爲正數)。我想你想要的是類似的Math.random()* 2 - 1到-1和1

二之間建立座標系,你需要你的正常化載體:http://mathworld.wolfram.com/NormalizedVector.html

最後,乘兩個向量座標按照你想要的矢量的大小,在你的情況下20,可能。

+0

您能否提供一個示例代碼,如上面的答案中所示? – kcode

+0

btw即時通訊工作在JavaScript,而不是Java – kcode