我正在做一個2D球到牆碰撞/彈跳動畫程序。我設法對球進行碰撞,並將球對準直線壁碰撞(兩者都是粗魯的)。球從曲面反彈
我的問題是,我如何工作的碰撞球從曲線表面反彈?例如一個球被圈入圈中(圓圈就是牆)。
乾杯
p.s.我正在使用c編程語言
我正在做一個2D球到牆碰撞/彈跳動畫程序。我設法對球進行碰撞,並將球對準直線壁碰撞(兩者都是粗魯的)。球從曲面反彈
我的問題是,我如何工作的碰撞球從曲線表面反彈?例如一個球被圈入圈中(圓圈就是牆)。
乾杯
p.s.我正在使用c編程語言
恕我直言,當一個球被困在一個圓形牆內時,由於牆與球之間的接觸點可以忽略不計,球的反射將像牆的正常情況一樣被控制。唯一的變化是反射的平面在球和牆之間的接觸點處是相切的。所以,在不同的碰撞點,切線的角度將會不同,這將決定球的速度角度。
我們可以通過將曲面看作一個半徑等於曲面曲率的巨大球體來處理凸面曲面。所以,我們只是計算兩個球之間的碰撞。當然,在這種情況下,我們必須考慮表面的質量是無限的,並從彈性碰撞方程導出方程。
基本原則始終是:
在圓圈碰撞的情況下:
r1
是一個圓(在3D中,球)的半徑r2
是其他圓的半徑d
是它們的中心d>r1+r2
的距離,圓圈是完全外側的每個其他r1>r2+d
,第二圓是完全內的第一個r2>r1+d
,第一圈是完全最後一個
圓圈很容易。 –