欧拉角旋转矩阵内外旋的等价性

下文中, 绕坐标轴 i 旋转角度 \theta_i 的旋转矩阵表示为 \mathbf{R}_i (\theta_i), 其中 i\in\{x, y, z\}.

Unity 中, 欧拉角 (\theta_x, \theta_y, \theta_z) 表示的旋转顺序是 z-x-y 的外旋(extrinsic rotation).

设初始坐标系为 E. 设点 PE 中坐标为 \mathbf{p}, 顺序为 z-x-y 的外旋的意义是:

  • PEz 轴旋转 \theta_z,得到点 P_1 的坐标 \mathbf{p}_1 = \mathbf{R}_z(\theta_z) \mathbf{p}.
  • P_1Ex 轴旋转 \theta_x, 得到点 P_2 的坐标 \mathbf{p}_2 = \mathbf{R}_x(\theta_x) \mathbf{p}_1.
  • P_2Ey 轴旋转 \theta_y 得到目标点 P^\prime 的坐标 \mathbf{p}^\prime = \mathbf{R}_y(\theta_y) \mathbf{p}_2.
    于是
    \mathbf{p}^\prime = \mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x) \mathbf{R}_z(\theta_z) \mathbf{p}.

顺序反过来(y-x-z)的内旋(intrinsic rotation)和上述外旋的结果是一样的. 内旋的意义是

  • PEy 轴旋转 \theta_y,得到点 Q_1 的坐标 \mathbf{q}_1 = \mathbf{R}_y(\theta_y) \mathbf{p}. 坐标系经过同样的旋转形成新的坐标系 E_1.
  • Q_1E_1x 轴旋转 \theta_x, 得到点 Q_2. 这个操作,等价于先把 E_1 转回 E (应用变换 \mathbf{R}_y(\theta_y)^{-1}),然后绕 Ex 轴旋转 \theta_x (应用变换 \mathbf{R}_x(\theta_x)), 再将 E 转到 E_1 (应用变换 \mathbf{R}_y(\theta_y)),所以 Q_2E 中的坐标为
    \mathbf{q}_2 = \mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x) \mathbf{R}_y(\theta_y)^{-1} \mathbf{q}_1 = \mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x) \mathbf{p}
    坐标系 E_1 也在上述变换作用下变成 E_2, 相对 E 而言是应用了变换 \mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x).
  • Q_2E_2z 轴旋转 \theta_z, 得到 P^{\prime\prime}. 类似地,这等价于将 E_2 转回 E, 绕 Ez 轴旋转 \theta_z, 再将 E 转回 E_2, 即
    \begin{aligned} \mathbf{p}^{\prime\prime} &= (\mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x)) \mathbf{R}_z(\theta_z) (\mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x))^{-1} \mathbf{q}_2\\ &= \mathbf{R}_y(\theta_y) \mathbf{R}_x(\theta_x)\mathbf{R}_z(\theta_z)\mathbf{p}\\ &= \mathbf{p}^\prime. \end{aligned}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容