三维空间中,绕着X轴,Y轴,Z轴的旋转可以使用4*4的矩阵表示,而根据左右手坐标系的不同,又可分为左手坐标系下的三维旋转矩阵和右手坐标系下的三维旋转矩阵。

1 左手坐标系下的旋转矩阵

设旋转角为θ角,而θ角表示从轴的正方向往坐标轴的反方向观察,顺时针旋转的角度(在左手坐标系下,顺时针旋转为旋转的正方向)。

1.1 绕X轴顺时针旋转θ角的旋转矩阵

R_x(\theta)=\begin{bmatrix}1&0&0&0\\0&\cos\theta&-\sin\theta&0\\0&\sin\theta&\cos\theta&0\\0&0&0&1\end{bmatrix}

1.2 绕Y轴顺时针旋转θ角的旋转矩阵

R_x(\theta)=\begin{bmatrix}\cos\theta&0&\sin\theta&0\\0&1&0&0\\-\sin\theta&0&\cos\theta&0\\0&0&0&1\end{bmatrix}

1.3 绕Z轴顺时针旋转θ角的旋转矩阵

R_x(\theta)=\begin{bmatrix}\cos\theta&-\sin\theta&0&0\\\sin\theta&\cos\theta&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}

2 右手坐标系下的旋转矩阵

设旋转角为θ角,θ角表示从轴的正方向往坐标轴的反方向观察,逆时针旋转的角度(在右手坐标系下,逆时针旋转为旋转的正方向)。因为左右手坐标系的不同,导致在两个坐标系中旋转的正方向相反,白话文就是在左手坐标系中旋转了θ角,就相当于在右手坐标系中旋转了-θ角。
所以在第1节以在左手坐标系中顺时针旋转为正方向的情况下,顺时针旋转θ角为正方向,那么在右手坐标系中逆时针旋转θ角需要将第1节中左手坐标系的旋转矩阵中的角度改为-θ角。
那么将上述绕X,Y,Z轴的旋转中的θ角全部改为−θ角,则:

2.1 绕X轴顺时针旋转θ角的旋转矩阵

以第一节中绕x轴的旋转矩阵为基础,将θ修改为-θ,则:

R_x(\theta)=\begin{bmatrix}1&0&0&0\\0&\cos(-\theta)&-\sin(-\theta)&0\\0&\sin(-\theta)&\cos(-\theta)&0\\0&0&0&1\end{bmatrix}

则根据三角函数计算公式可推导出:

R_x(\theta)=\begin{bmatrix}1&0&0&0\\0&\cos\theta&\sin\theta&0\\0&-\sin\theta&\cos\theta&0\\0&0&0&1\end{bmatrix}

2.2 绕Y轴顺时针旋转θ角的旋转矩阵

以第一节中绕y轴的旋转矩阵为基础,将θ修改为-θ,则:

R_x(\theta)=\begin{bmatrix}\cos(-\theta)&0&\sin(-\theta)&0\\0&1&0&0\\-\sin(-\theta)&0&\cos(-\theta)&0\\0&0&0&1\end{bmatrix}

则根据三角函数计算公式可推导出:

R_x(\theta)=\begin{bmatrix}\cos\theta&0&-\sin\theta&0\\0&1&0&0\\\sin\theta&0&\cos\theta&0\\0&0&0&1\end{bmatrix}

2.3 绕Z轴顺时针旋转θ角的旋转矩阵

以第一节中绕z轴的旋转矩阵为基础,将θ修改为-θ,则:

R_x(\theta)=\begin{bmatrix}\cos(-\theta)&-\sin(-\theta)&0&0\\\sin(-\theta)&\cos(-\theta)&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}

则根据三角函数计算公式可推导出:

R_x(\theta)=\begin{bmatrix}\cos\theta&\sin\theta&0&0\\-\sin\theta&\cos\theta&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}