在三维空间中,绕着X轴,Y轴,Z轴的旋转可以使用4*4的矩阵表示,而根据左右手坐标系的不同,又可分为左手坐标系下的三维旋转矩阵和右手坐标系下的三维旋转矩阵。矩阵采用列主序。
1 左手坐标系下的旋转矩阵
左手坐标系下,正旋转是绕旋转轴顺时针旋转,可以理解为从旋转轴的正方向看向原点的顺时针方向。
设旋转角为θ角,
1.1 绕X轴顺时针旋转θ角的旋转矩阵
1.2 绕Y轴顺时针旋转θ角的旋转矩阵
1.3 绕Z轴顺时针旋转θ角的旋转矩阵
1.4 旋转矩阵组合
我们可以以上述三个绕轴旋转矩阵为基础,使用矩阵乘法组成不同旋转顺序的旋转矩阵,比如:
其中\alpha、\beta、\gamma 分辨代表yaw、pitch、roll欧拉角。
- pitch:抬头
- yaw:向右偏
- roll:向右翻滚
类似的,公式:
代表欧拉角为\alpha、\beta 、\gamma,变换顺序为y-x-z的旋转变换。
另外,假设当前为顺时针的左手坐标系,绕x轴旋转\phi 角,绕y轴旋转\theta 角,绕z轴旋转\psi 角,且按x-y-z的顺序进行旋转,那么最后的旋转矩阵为:
\begin{bmatrix}
\cos \theta \cos \psi & -\cos \phi\sin \psi+\sin\phi\sin\theta\cos\psi & \sin \phi\sin\psi + \cos\phi\sin\theta\cos\psi \\
\cos\theta\sin \psi & \cos\phi\cos\psi+\sin\phi\sin \theta \sin \psi & -\sin\phi\cos\psi+\cos\phi\sin\theta\sin\psi \\
-\sin\theta & \sin\phi\cos\theta & \cos\phi\cos \theta
\end{bmatrix}
2 右手坐标系下的旋转矩阵
右手坐标系下,正旋转是绕旋转轴逆时针旋转,可以理解为从旋转轴的正方向看向原点的逆时针方向。
设旋转角为θ角,因为左右手坐标系的不同,导致在两个坐标系中旋转的正方向相反,白话文就是在左手坐标系中旋转了θ角,就相当于在右手坐标系中旋转了-θ角。
所以在第1节以在左手坐标系中顺时针旋转为正方向的情况下,顺时针旋转θ角为正方向,那么在右手坐标系中逆时针旋转θ角需要将第1节中左手坐标系的旋转矩阵中的角度改为-θ角。
那么将上述绕X,Y,Z轴的旋转中的θ角全部改为−θ角,则:
2.1 绕X轴顺时针旋转θ角的旋转矩阵
以第一节中绕x轴的旋转矩阵为基础,将θ修改为-θ,则:
则根据三角函数计算公式可推导出:
2.2 绕Y轴顺时针旋转θ角的旋转矩阵
以第一节中绕y轴的旋转矩阵为基础,将θ修改为-θ,则:
则根据三角函数计算公式可推导出:
2.3 绕Z轴顺时针旋转θ角的旋转矩阵
以第一节中绕z轴的旋转矩阵为基础,将θ修改为-θ,则:
则根据三角函数计算公式可推导出:
参考链接
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:计算机图形学 – 三维空间中的左、右手坐标系旋转矩阵与旋转变换
原文链接:https://www.stubbornhuang.com/714/
发布于:2020年02月17日 17:43:51
修改于:2023年06月26日 22:35:49
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
51