2010-02-02 66 views
0

我有像xy座標(200,200)。我知道從球的起源角度計算。當球在二維環境中投擲時,如何才能找到達到特定xy座標的初始速度?需要使用彈道中特定座標的角度?

x = v0cosq0t; 
y = v0sinq0t - (1/2)gt2. 

但時間

蔭。沒有時間我能做到嗎?請幫忙嗎?

+0

你可能想考慮描述每個變量是什麼。我不知道「gt2」代表什麼。第2行也有語法錯誤。「。」代替 」;」 – Ponkadoodle 2010-02-02 06:50:04

回答

1

我假設你想讓球在其路徑的頂點擊中特定點(200,200)。好了,我的物理學是有點生疏,但是這是我扔在一起:

v_y = square_root(2*g*y)

其中g是反映了由於重力的加速度爲正數,y爲你想有多高去(在這種情況下是200)。

v_x = (x*g)/v_y

其中x是你想多遠,在X方向走(200在這種情況下),g是和以前一樣,和Vy是我們以前的公式中得到了答案。

這些公式不需要角度。但是,如果你寧願有速度+角,這是簡單的:

v0 = square_root(v_x^2 + v_y^2)

angle = arctan(v_y/v_x)

這裏是推導,如果你有興趣:

(1/2)at^2 + v_yt + 0 = y

(1/2)at^2 + v_yt - y = 0

通過二次方程式,

t = (-v_y +/- square_root(v_y^2 - 2ay))/a

我們也有另一個公式,因爲在頂點的垂直速度爲0:

0 = v_y + at

替代:

0 = v_y + (-v_y +/- square_root(v_y^2 - 2ay))

0 = square_root(v_y^2 - 2ay)

0 = v_y^2 - 2ay

v_y = square_root(-2ay),或

v_y = square_root(2gy)

對於v_x:

v_x*t = x

從之前,T = v_y/A,因此

​​

希望作出足夠的常識。

0

我確定你可以假設速度變化是瞬時的。遊戲物理學中總是存在一些「狡猾」的部分,因爲它在計算上太昂貴或者不足以讓低粒度信息正確化。

您可以立即開始velocity ass,然後使用計時器類來測量每幀之間的時間(非常粗糙的做法),或者您可以在更新循環中設置一個計時器類,以便更新物理每x秒。