美文网首页Unity
欧拉角旋转矩阵内外旋的等价性

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

作者: 加菲教主 | 来源:发表于2022-10-02 12:39 被阅读0次

    下文中, 绕坐标轴 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}

    相关文章

      网友评论

        本文标题:欧拉角旋转矩阵内外旋的等价性

        本文链接:https://www.haomeiwen.com/subject/yhijartx.html