羅德里格斯公式推導過程及理解
阿新 • • 發佈:2021-07-07
Rodrigues' Rotation Fomula-羅德里格斯旋轉公式
此公式用於表示繞過原點的某一軸 $ \mathbf{n} $ 旋轉 $ \alpha $ 的變換矩陣,推導過程參考GAMES101-Lectrue 04輔助講義。
推導過程
Step 1
\(\vec{a}\) 為標準化後的 \(\vec{n}\), \(\vec{S}\) 為待旋轉向量,\(\hat{a}\) 和 \(\hat{b}\) 構成了 \(\hat{a}\) 和 \(\vec{S}\) 所在平面的正交基。
根據向量分解,易得 \(\vec{S_\Vert}\) 與 \(\vec{S_\perp}\), 如上圖所示。
Step 2
根據向量叉乘幾何意義可得出三維座標系的第三個正交基\(\hat{c}\), 根據叉乘的分配律可得圖上結果。
Step 3
\(\vec{S}\) 旋轉後的 \(\vec{S^{rot}}\) 在平面\((\hat{b},\hat{c})\) 的投影 \(\vec{S^{rot}_{\perp}}\) 和 \(\vec{S_\perp}\) 的夾角為旋轉角 \(\theta\), 由向量分解規律可得 \(\vec{S^{rot}_{\perp}}\).
由:
\[\vec{S}\cdot R(\mathbf{n},\alpha)=\vec{S^{rot}_{\Vert}}+\vec{S^{rot}_{\perp}} \]\[R(\mathbf{n},\alpha)=\cos{\alpha}\cdot\mathbf{I} +(1-\cos{\alpha})\mathbf{n}\mathbf{n^T} +\sin{\alpha}\left(\begin{matrix} 0&-n_z&n_y\\ n_z&0&-n_x\\ -n_y&n_x&0\\ \end{matrix} \right) \]推導思路理解起來其實很簡單,但線性代數基礎方面的巨大不足讓我在計算過程中遇到了很多困難,可見基礎的重要性。