2017-02-26 39 views
1

我正在製作一個Javascript程序,其中包括物理學,但彈丸公式對我來說很難找到正確的。我看到了與公式https://math.stackexchange.com/questions/82934/how-to-find-the-parabola-of-a-flying-object?newreg=e730be6696794b3f9ef8404df475c9c8的鏈接,但這很難用javascript的數學函數顯示。我的代碼如下。如何找到對象的拋物線公式?

//speed 
var speed = 0; 

//angle 
var angle = 0; 

//previous coord log 
var pballx = 0; 
var pbally = 0; 

//ball fall counters 
var bffasttime = 0; 
var bftime = bffasttime/60; 
//log counter 
var lftime = 0; 
var ltime = 0; 

speed = sqrt(sq(abs(bally-pbally))+sq(abs(ballx-bally)))/0.2; 
angle = Math.atan((pbally-bally)-(pballx-ballx))*180/Math.PI; 
bally = ballx*Math.tan(angle)-[(1/2)*(9.8/sq(bftime))*sq(bftime)]/sq(speed); 

它允許你拖動一個球,每0.2秒它被拖到它記錄了COORDS這就是pbally和pballx和釋放時的角度計算速度和拋物線,而是它只是瞬間移動到最佳。我幾乎肯定我的公式是正確的,但如果他們沒有任何更正會很好。謝謝!!!

+0

這段代碼應該做什麼?它做什麼呢?哪條線的行爲與您期望的不同?你能把它縮小到[mcve]而不是整個草圖嗎? –

+0

它應該製作一個可以用鼠標投擲和拿起的球。我希望它的表現方式類似於真實的物理現象,而不是隻是出現故障並傳送到屏幕的最頂端。 –

+0

它與「射彈公式」 –

回答

0

angle = Math.atan((pbally-bally) - (pballx-ballx))* 180/Math.PI;

也許應該是:

角= Math.atan((pbally-巴利)/(pballx-ballx))* 180/Math.PI;

+0

噢,謝謝! –