Rodrigues' Rotation Fomula-罗德里格斯旋转公式
此公式用于表示绕过原点的某一轴 $ \mathbf{n} $ 旋转 $ \alpha $ 的变换矩阵,推导过程参考GAMES101-Lectrue 04辅助讲义。
推导过程
Step 1
\(\vec{a}\) 为标准化后的 \(\mathbf{n}\), \(\vec{S}\) 为待旋转向量,\(\hat{a}\) 和 \(\hat{b}\) 为 \(\hat{a}\) 和 \(\vec{S}\) 所在平面的正交基。
将\(\vec{S}\) 分解到 \(\hat{a}\) 和 \(\hat{b}\) 上后,易得 \(\vec{S_\parallel}\) 与 \(\vec{S_\perp}\), 如上图所示。
PS:\(\vec{S}\) 在 \(\hat{a}\) 上的投影用矩阵可表示为 \(aa^T\cdot\vec{S}\)
Step 2
根据向量叉乘几何意义可得出三维坐标系的第三个正交基\(\hat{c}\), 根据叉乘的分配律可得图上结果。
PS:
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}\) 后,可得:
推导思路理解起来其实很简单,但线性代数基础方面的不足让我在计算过程中遇到了很多困难,可见基础的重要性。