看板 GameDesign 關於我們 聯絡資訊
http://www.phy.ntnu.edu.tw/demolab/phpBB/viewtopic.php?topic=8319 就是高中物理常算的題目 可是要寫成程式.... 覺得好難 orz.... 二為彈性碰撞的解法很簡單 就只要把兩物體的速度,對中心點連線以及垂直方向做投影 然後把中心點連線上的投影互相交換,就是答案了 我在高中就這樣算,也沒覺得特別難或是複雜..... 但是要寫成程式碼就覺得很困難..... 首先,要取得中心點連線向量 然後,要分別對中心點連線做投影 ──什麼!Vector2不提供投影的辦法 計算投影後的分量,A的速度*Cosθ*中心點連線的單位向量 orz.... 不知道角度.... Cosθ = A‧中心點向量/|A|*|中心點向量| 很好..... 算出中心點向量的投影了 現在要算垂直線的投影..... (/‵Д′)/~ ╧╧ 沒直接取得垂直向量的方法.... 自己算 向量垂直的話,內積 = 0; 因此:X1*X2 + Y1*Y2 = 0 X1/Y1 = - Y2/X2 垂直向量出來了,等於 new Vector2(1f,-中心點向量.X/中心點向量.Y) new Vector2(-1f,中心點向量.X/中心點向量.Y) ──那一邊!? 要判斷式去判斷方向..... 我從開始計算這個東西,算到這邊已經花了兩個小時 重點是.....還算的很難看..... 於是就全刪掉了 總共有四個分量要算 現在第二個還沒算完..... 請問像這種有點複雜的計算過程,有地方可以直接找演算法嗎? 這種基礎的東西,應該都被算過很多遍了吧? 呃.... 接下來似乎還有跟平面的碰撞要算.... -- 我... 我一點都不糟糕啦!>///< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.27.109.99
sivic228:可以試著把向量一些基本運算 dot, cross, magnitude, 08/05 19:59
sivic228:normalize, project 等寫成函式,然後在用這些去算碰撞 08/05 20:00
sivic228:就會比較簡單了,不過執行速度可能會較慢..... 08/05 20:01
johnny94:XNA上面有一套很不錯的物理引擎 08/05 20:10
johnny94:http://farseerphysics.codeplex.com/ 可以參考一下 08/05 20:11
F23ko:感謝 ^^" 08/05 20:18
KanoLoa:最近接了flash做物理教材..也是頗頭痛-_- 08/05 20:49
F23ko:拍拍..... 08/06 01:30