看到cyclone-physics
用下面的方式算出w(角速度)
I = R * I' * R-1
τ = I α
w = w + αΔt
I' 是Local space 的轉動慣量
(它是一個矩陣)
R 是物件當下的旋轉矩陣
(用來變換到Global space)
R-1是旋轉矩陣的逆
(用來變換到Local space)
衝量F Δt造成動量 ΔP的變化
F Δt = ΔP = m ΔV
左右同除Δt,得到
F = m (ΔV / Δt) =m a
τ Δt造成角動量ΔL的變化
τ = R X F
τ Δt = R X F Δt = ΔL = I Δw
在 Global space
旋轉中的物體,每個時間點 I 都在不停變化
但在Local space
I' 是定值
τ' Δt = I' Δw
左右同除Δt,得到
τ' = I' α'
Global space的轉動慣量
τ 是Global space 的力矩
α 是Global space 的角加速度
透過座標變換得到
Local 和 Global的關系
τ' = R-1 * τ
α' = R-1 * α
代入下式
τ' = I' α'
可以得到
(R-1 * τ) = I' * (R-1 * α)
左右同乘R
R * (R-1 * τ) = R * I' * (R-1* α)
τ = R * I' * R-1 * α
τ = I * α
可知
I = R * I' * R-1
就是Globalspace 的轉動慣量
計算w的方法
使用
τ = I α
w = w + αΔt
如果τ = | 0,0,0 |T,α 也會是 | 0,0,0 |T
那麼 w就不會改變
如果改用
L= L+ΔL
L = I w
只要有初始動量,就算之後ΔL =
| 0,0,0 |T,w還是會不停的改變
備註:
I = R * I' * R-1 是在Ben的教學裡看到的
沒有留言:
張貼留言