日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

向量几何在游戏编程中的使用系列二之2-D物体间的碰撞响应

發布時間:2024/4/11 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 向量几何在游戏编程中的使用系列二之2-D物体间的碰撞响应 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

2-D物體間的碰撞響應

  這次我要分析兩個球體之間的碰撞響應,這樣我們就可以結合以前的知識來編寫一款最基本的2-D臺球游戲了,雖然粗糙了點,但卻是個很好的開始,對嗎?

  一、初步分析

  中學時候上物理課能夠認真聽講的人(我?哦,不包括我)應該很熟悉的記得:當兩個球體在一個理想環境下相撞之后,它們的總動量保持不變,它們的總機械能也守恒。但這個理想環境是什么樣的呢?理想環境會不會影響游戲的真實性?對于前者我們做出在碰撞過程中理想環境的假設:

  1)首先我們要排除兩個碰撞球相互作用之外的力,也就是假設沒有外力作用于碰撞系統。

  2)假設碰撞系統與外界沒有能量交換。

  3)兩個球體相互作用的時間極短,且相互作用的內力很大。

  有了這樣的假設,我們就可以使用動量守恒和動能守恒定律來處理它們之間的速度關系了,因為1)確保沒有外力參與,碰撞系統內部動量守恒,我們就可以使用動量守恒定律。2)保證了我們的碰撞系統的總能量不會改變,我們就可以使用動能守恒定律。3)兩球發生完全彈性碰撞,不會粘在一起,沒有動量、能量損失。

  而對于剛才的第二個問題,我的回答是不會,經驗告訴我們,理想環境的模擬看起來也是很真實的。除非你是在進行科學研究,否則完全可以這樣理想的去模擬。

  現在,我們可以通過方程來觀察碰撞前后兩球的速度關系。當兩球球心移動方向共線(1-D處理)時的速度,或不共線(2-D處理)時共線方向的速度分量滿足:

  (1)m1 * v1 + m2 * v2 = m1 * v1' + m2 * v2' (動量守恒定律)

  (2)1/2 * m1 * v1^2 + 1/2 * m2 * v2^2 = 1/2 * m1 * v1'^2 + 1/2 * m2 * v2'^2 (動能守恒定律)

  這里m1m2是兩球的質量,是給定的,v1v2是兩球的初速度也是我們已知的,v1'v2'是兩球的末速度,是我們要求的。好,現在我們要推導出v1'v2'的表達式:

  由(1),得到v1' = (m1 * v1 + m2 * v2 - m2 * v2') / m1,代入(2),得

  1/2 * m1 * v1^2 + 1/2 * m2 * v2^2 = 1/2 * m1 * (m1 * v1 + m2 * v2 - m2 * v2')^2 + 1/2 * m2 * v2'^2

  => v2' = (2 * m2 * v1 + v2 * (m1 - m2)) / (m1 + m2),則

  => v1' = (2 * m1 * v2 + v1 * (m1 - m2)) / (m1 + m2)

  我們現在得到的公式可以用于處理當兩球球心移動方向共線(1-D處理)時的速度關系,或者不共線(2-D處理)時共線方向的速度分量的關系。不管是前者還是后者,我們都需要把它們的速度分解到同一個軸上才能應用上述公式進行處理。

轉載于:https://my.oschina.net/liu-xuewei/blog/77230

總結

以上是生活随笔為你收集整理的向量几何在游戏编程中的使用系列二之2-D物体间的碰撞响应的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。