我有像xy座標(200,200)。我知道從球的起源角度計算。當球在二維環境中投擲時,如何才能找到達到特定xy座標的初始速度?需要使用彈道中特定座標的角度?
x = v0cosq0t;
y = v0sinq0t - (1/2)gt2.
但時間
蔭。沒有時間我能做到嗎?請幫忙嗎?
我有像xy座標(200,200)。我知道從球的起源角度計算。當球在二維環境中投擲時,如何才能找到達到特定xy座標的初始速度?需要使用彈道中特定座標的角度?
x = v0cosq0t;
y = v0sinq0t - (1/2)gt2.
但時間
蔭。沒有時間我能做到嗎?請幫忙嗎?
我假設你想讓球在其路徑的頂點擊中特定點(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,因此
希望作出足夠的常識。
我確定你可以假設速度變化是瞬時的。遊戲物理學中總是存在一些「狡猾」的部分,因爲它在計算上太昂貴或者不足以讓低粒度信息正確化。
您可以立即開始velocity ass,然後使用計時器類來測量每幀之間的時間(非常粗糙的做法),或者您可以在更新循環中設置一個計時器類,以便更新物理每x秒。
你可能想考慮描述每個變量是什麼。我不知道「gt2」代表什麼。第2行也有語法錯誤。「。」代替 」;」 – Ponkadoodle 2010-02-02 06:50:04