[問題] 彈性碰撞(移動+轉動)
二維平面,兩個球體碰撞。
球體同時移動和轉動,具備速度和角速度。
採用impulse method,計算碰撞之後的速度和角速度。
impulse method詳細步驟:
1.計算接觸點的相對速度。
2.計算接觸點的衝量。
3.計算碰撞之後的速度、角速度。
我的問題:
為什麼移動和轉動共用衝量?
衝量不用分配給移動和轉動嗎?
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1. 接觸點的相對速度。
v1 = u1 + (w1 ×r1)
v2 = u2 + (w2 ×r2)
v12 = v2 - v1
u1 u2 速度(質心)
w1 w2 角速度(接觸點)
v1 v2 速度(接觸點)
v12 相對速度(接觸點)
2. 接觸點的衝量(法線分量、切線分量)。
-(1+e) (v12.N)
J_N = ———————————————————————
1/m1 + 1/m2 + (r1×N)^2 / I1 + (r2×N)^2 / I2
-(1+e) (v12.T)
J_T = ———————————————————————
1/m1 + 1/m2 + (r1×T)^2 / I1 + (r2×T)^2 / I2
-u J_N <= J_T <= u J_N
m1 m2 質量
I1 I2 慣性矩
r1 r2 旋轉半徑
v12 = v2 - v1 相對速度(接觸點)
e 恢復係數(e=1是彈性碰撞)
u 摩擦係數
N 法向量(單位向量)
T 切向量(單位向量)
J_N 法線衝量
J_T 切線衝量
3. 碰撞之後的速度u'、角速度w':
u1' = u1 - J_N / m1
w1' = w1 - J_N (r1 ×N) / I1 - J_T (r1 ×T) / I1
u2' = u2 + J_N / m2
w2' = w2 + J_N (r2 ×N) / I2 + J_T (r2 ×T) / I2
參考資料
Building a 2D Game Physics Engine Using HTML5 and JavaScript. page 99.
https://link.springer.com/book/10.1007/978-1-4842-2583-7
https://reurl.cc/zAenYk
Box2D-lite Arbiter.cpp
https://reurl.cc/7Rrz7y
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.41.56 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Physics/M.1677122016.A.C8D.html
※ 編輯: DJWS (220.137.41.56 臺灣), 02/23/2023 11:27:40
※ 編輯: DJWS (220.137.41.56 臺灣), 02/23/2023 11:32:46
推
02/23 19:32,
2年前
, 1F
02/23 19:32, 1F
推
02/23 20:23,
2年前
, 2F
02/23 20:23, 2F
→
02/23 20:23,
2年前
, 3F
02/23 20:23, 3F
→
02/23 20:23,
2年前
, 4F
02/23 20:23, 4F
→
02/23 20:39,
2年前
, 5F
02/23 20:39, 5F
→
02/23 20:40,
2年前
, 6F
02/23 20:40, 6F
→
02/23 20:44,
2年前
, 7F
02/23 20:44, 7F
→
02/23 20:50,
2年前
, 8F
02/23 20:50, 8F
推
02/24 07:11,
2年前
, 9F
02/24 07:11, 9F
→
02/24 07:18,
2年前
, 10F
02/24 07:18, 10F
→
02/24 07:18,
2年前
, 11F
02/24 07:18, 11F
→
02/24 07:18,
2年前
, 12F
02/24 07:18, 12F
→
02/24 08:42,
2年前
, 13F
02/24 08:42, 13F
→
02/24 08:43,
2年前
, 14F
02/24 08:43, 14F
→
02/24 08:49,
2年前
, 15F
02/24 08:49, 15F
※ 編輯: DJWS (220.137.53.226 臺灣), 02/24/2023 12:50:21
→
02/24 12:51,
2年前
, 16F
02/24 12:51, 16F
→
02/24 12:53,
2年前
, 17F
02/24 12:53, 17F
討論串 (同標題文章)