2011-09-17 19 views
0

我正在嘗試編寫一個sim,其中兩個圓會發生碰撞,然後在彈性碰撞中彈開。每個圓都有一個位置,速度,質量和半徑。我已經完成了碰撞檢測,但我不知道如何確保產生的速度是現實的。兩個2d圓之間的碰撞響應

我知道作用在每一個上的力是相同的,並且已經計算了合力的角度,但我需要找到力的大小。考慮到速度和速度,如何解決速度問題

我正在使用部隊,因爲它適合於其他程序,如果有更簡單的方法,請讓我知道。

回答

0

使用動量守恆定律和能量守恆定律。你將不得不爲每個圓圈假設一些虛構的質量,這樣可以讓你解決碰撞後產生的速度。

令m1和m2分別爲圓圈c1和c2的質量,速度爲v1和v2。那麼,

m1.v1 + m2.v2(碰撞前)= m1.v1 + m2.v2(碰撞後)(動量的缺點) 上面的eqn是一個向量方程。

應用能量守恆:潛在恩爾+動力學恩爾(前列)=壺恩爾+健能量(後衝撞)

+0

儘管它是正確的,但您還需要指定碰撞後的運動方向,這取決於碰撞的角度等。 – tom10

+0

由於速度被定義爲矢量,所以角度被隱式指定利用標量能量eqn解釋矢量方程將給出碰撞後產生的速度。 – Bhaskar

2

首先,找出一個球如何反彈具有任意的角度的壁。如果v是速度矢量和一個是,則V」 = v正常(垂直於壁並指出它的單位矢量) - (。V A)2 一個反彈後給你速度。其次,考慮兩個相等但相反的動量球的碰撞,就像兩個相同但相反速度相同的球相互掠過。每個球都會像擊中牆一樣,即與兩個球相切的線。

三,處理一般情況下,我們用Center of Mass Frame。質量中心的速度是:

v CM =(M v +米v )/(米 + m B

這是一個觀察者的速度,這兩個球似乎有相等和相反的動量。在該觀察者的幀的速度是:

v ' = v - v CM
v ' = v - v CM

現在我們用上述(「第二」)溶液中的碰撞後找到速度,v 「」v 「」(仍然在CM幀)。最後,我們移回原始的幀:

v '' ' = v '' + v CM
v ''' = v B'' + v CM

+0

優秀的答案,解決了我的問題:D。 – David