Skip to content

1. 引言

旋转矩阵是描述刚体绕固定点旋转的基本工具,广泛应用于几何学、计算机图形学、机器人学及物理学中。在 $\mathbb{R}^n$中,旋转保持向量的长度、角度和定向(手性),数学上对应行列式为$+1$ 的正交矩阵

本笔记主要讨论二维和三维欧几里得空间中的旋转矩阵,并建立与其他表示(欧拉角、四元数)的联系。

核心定义($\mathrm{SO}(n)$)

一个 $n \times n$实矩阵$\mathbf{R}$ 称为旋转矩阵,当且仅当

  1. $\mathbf{R}^\top \mathbf{R} = \mathbf{I}$ (正交性)
  2. $\det(\mathbf{R}) = +1$ (保持定向)

所有这样的矩阵构成特殊正交群 $\mathrm{SO}(n)$。


2. 二维旋转矩阵

定理(平面旋转的标准形式)

绕原点逆时针旋转角度 $\theta$ 的矩阵为 $$ \mathbf{R}(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta \newline \sin\theta & \cos\theta \end{pmatrix}. $$

推导

设基向量 $\mathbf{e}_1=(1,0)^\top$ 旋转后变为 $\mathbf{R}\mathbf{e}_1 = (\cos\theta,\thickspace\sin\theta)^\top$, $\mathbf{e}_2=(0,1)^\top$ 旋转后变为 $\mathbf{R}\mathbf{e}_2 = (-\sin\theta,\thickspace\cos\theta)^\top$。 由此即得矩阵的列。易验证 $\mathbf{R}^\top\negthinspace\mathbf{R} = \mathbf{I}$且$\det\mathbf{R} = \cos^2\theta+\sin^2\theta = 1$。

例1:绕原点旋转 $60^\circ$

旋转 $\theta = 60^\circ = \pi/3$,则 $$ \mathbf{R}\negthinspace\left(\frac{\pi}{3}\right) = \begin{pmatrix} \frac12 & -\frac{\sqrt{3}}{2} \newline[2mm] \frac{\sqrt{3}}{2} & \frac12 \end{pmatrix}. $$ 作用于点 $(2,0)$得到$(2\cos60^\circ,\thinspace 2\sin60^\circ) = (1,\sqrt{3})$。

旋转的复合

连续两次旋转等价于角度相加: $\mathbf{R}(\theta_2)\mathbf{R}(\theta_1) = \mathbf{R}(\theta_1+\theta_2)$。 所有二维旋转构成阿贝尔群 $\mathrm{SO}(2)$。


3. 三维旋转矩阵

3.1 绕坐标轴的旋转

右手系下,绕 $x$、$y$、$z$轴旋转$\theta$ 的基本矩阵为:

$$ \mathbf{R}_x(\theta) = \begin{pmatrix} 1 & 0 & 0 \newline 0 & \cos\theta & -\sin\theta \newline 0 & \sin\theta & \cos\theta \end{pmatrix},\quad \mathbf{R}_y(\theta) = \begin{pmatrix} \cos\theta & 0 & \sin\theta \newline 0 & 1 & 0 \newline -\sin\theta & 0 & \cos\theta \end{pmatrix},\quad \mathbf{R}_z(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \newline \sin\theta & \cos\theta & 0 \newline 0 & 0 & 1 \end{pmatrix}. $$

符号约定

旋转角的正方向由右手定则确定:当旋转轴指向观察者时,逆时针旋转为正。注意 $\mathbf{R}_y$中$\sin\theta$项的位置及符号,与其他轴稍有不同,但这保证了$\det = +1$ 以及正交性。

例2:绕 $z$轴旋转$90^\circ$

$$ \mathbf{R}_z\negthinspace\left(\frac{\pi}{2}\right) = \begin{pmatrix} 0 & -1 & 0 \newline 1 & 0 & 0 \newline 0 & 0 & 1 \end{pmatrix}. $$ 点 $(1,0,0)$被映射到$(0,1,0)$。

3.2 绕任意轴的旋转 —— 罗德里格斯公式

给定单位向量 $\mathbf{n} = (n_x,n_y,n_z)^\top$作为旋转轴,绕该轴旋转角度$\theta$的矩阵$\mathbf{R}(\mathbf{n},\theta)$ 可由罗德里格斯旋转公式给出。

定理(罗德里格斯公式)

设 $\mathbf{n}$为单位向量,则绕$\mathbf{n}$旋转$\theta$ 的矩阵为 $$ \mathbf{R}(\mathbf{n},\theta) = \mathbf{I} + (\sin\theta)\thinspace\mathbf{K} + (1-\cos\theta)\thinspace\mathbf{K}^2, $$ 其中 $\mathbf{K} = [\mathbf{n}]_\times$是$\mathbf{n}$ 的反对称矩阵: $$ \mathbf{K} = \begin{pmatrix} 0 & -n_z & n_y \newline n_z & 0 & -n_x \newline -n_y & n_x & 0 \end{pmatrix}. $$

推导思想

任意向量 $\mathbf{v}$可分解为平行于$\mathbf{n}$的分量$\mathbf{v}_\parallel = (\mathbf{v}\cdot\mathbf{n})\mathbf{n}$和垂直于$\mathbf{n}$的分量$\mathbf{v}_\perp = \mathbf{v} - \mathbf{v}_\parallel$。 旋转后,平行分量不变,垂直分量在垂直于 $\mathbf{n}$的平面内旋转$\theta$: $\mathbf{v}_\perp \mapsto \cos\theta\thinspace\mathbf{v}_\perp + \sin\theta\thinspace(\mathbf{n}\times\mathbf{v}_\perp)$。 利用 $\mathbf{n}\times\mathbf{v}_\perp = \mathbf{n}\times\mathbf{v}$以及$\mathbf{n}\times(\mathbf{n}\times\mathbf{v}) = (\mathbf{n}\cdot\mathbf{v})\mathbf{n} - \mathbf{v}$,整理后即得上述矩阵形式。

例3:绕轴 $(1,1,1)/\sqrt{3}$旋转$120^\circ$

$\mathbf{n} = \frac{1}{\sqrt{3}}(1,1,1)$,$\theta = 2\pi/3$,则 $\sin\theta = \sqrt{3}/2$,$\cos\theta = -1/2$。 $$ \mathbf{K} = \frac{1}{\sqrt{3}}\begin{pmatrix} 0 & -1 & 1 \newline 1 & 0 & -1 \newline -1 & 1 & 0 \end{pmatrix},\quad \mathbf{K}^2 = \frac{1}{3}\begin{pmatrix} -2 & 1 & 1 \newline 1 & -2 & 1 \newline 1 & 1 & -2 \end{pmatrix}. $$ 代入公式得 $\mathbf{R} = \begin{pmatrix} 0 & 0 & 1 \newline 1 & 0 & 0 \newline 0 & 1 & 0 \end{pmatrix}$, 这正是对 $x,y,z$坐标进行循环置换的矩阵(旋转$120^\circ$ 恰好使三个坐标轴轮换)。


4. 旋转矩阵的性质

代数与几何性质

  • 正交性:$\mathbf{R}^{-1} = \mathbf{R}^\top$,因此旋转保持内积和距离。
  • 行列式:$\det\mathbf{R}=1$,保证定向不变。
  • 特征值:三维旋转矩阵总有一个实特征值 $1$,对应的特征向量就是旋转轴;另外两个复特征值为 $e^{\pm i\theta}$,其中 $\theta$为旋转角,满足$\operatorname{tr}(\mathbf{R}) = 1 + 2\cos\theta$。
  • 群结构:$\mathrm{SO}(3)$ 是一个非交换李群,复合运算对应矩阵乘法,逆对应转置。

由矩阵提取旋转轴和角度

已知旋转矩阵 $\mathbf{R}$,则

  • 旋转角 $\theta = \arccos\negthinspace\left(\frac{\operatorname{tr}(\mathbf{R})-1}{2}\right)$(取 $0\le\theta\le\pi$)。
  • 旋转轴的方向由反对称部分给出: $\mathbf{K} = \frac{\mathbf{R} - \mathbf{R}^\top}{2\sin\theta}$(当 $\theta\neq 0,\pi$ 时), 或直接求解 $(\mathbf{R}-\mathbf{I})\thinspace\mathbf{n}= \mathbf{0}$。

例4:从矩阵反推参数

已知 $\mathbf{R} = \begin{pmatrix} 0 & -1 & 0 \newline 1 & 0 & 0 \newline 0 & 0 & 1 \end{pmatrix}$(绕 $z$轴$90^\circ$), 迹为 $1$,故 $\cos\theta = 0$,$\theta = \pi/2$。解 $(\mathbf{R}-\mathbf{I})\mathbf{n}=0$得轴$\mathbf{n}=(0,0,1)$。


5. 与其他旋转表示的关系

5.1 欧拉角

欧拉角将旋转分解为绕三个特定轴的连续旋转,常用形式有 Z-X-Z、Z-Y-X 等。

注意

欧拉角存在万向节锁(Gimbal Lock)问题:当中间旋转使某个轴对齐时,会丧失一个自由度。在工程中常改用四元数进行插值。

Z-Y-X 欧拉角(偏航-俯仰-滚转)为例: $$ \mathbf{R} = \mathbf{R}_z(\psi)\thinspace\mathbf{R}_y(\theta)\thinspace\mathbf{R}_x(\phi), $$ 其中 $\psi,\theta,\phi$分别为绕$z,y,x$ 的旋转角。

5.2 四元数

单位四元数 $q = w + xi + yj + zk$($w^2+x^2+y^2+z^2=1$)可等价表示三维旋转,且无万向锁。

四元数到旋转矩阵的转换

给定单位四元数 $(w,x,y,z)$,对应的旋转矩阵为 $$ \mathbf{R} = \begin{pmatrix} 1-2y^2-2z^2 & 2xy-2zw & 2xz+2yw \newline 2xy+2zw & 1-2x^2-2z^2 & 2yz-2xw \newline 2xz-2yw & 2yz+2xw & 1-2x^2-2y^2 \end{pmatrix}. $$ 该矩阵是正交且行列式为 $1$ 的。与罗德里格斯公式联系: 若旋转轴为 $\mathbf{n}$,旋转角为 $\theta$,则四元数取 $(\cos\frac{\theta}{2},\thickspace \mathbf{n}\sin\frac{\theta}{2})$。

例5:四元数转矩阵

绕 $z$轴旋转$90^\circ$的四元数为$(\cos45^\circ,0,0,\sin45^\circ) = (\frac{\sqrt{2}}{2},0,0,\frac{\sqrt{2}}{2})$。 代入公式得 $\mathbf{R} = \begin{pmatrix} 0 & -1 & 0 \newline 1 & 0 & 0 \newline 0 & 0 & 1 \end{pmatrix}$,与直接构造一致。


6. 应用:坐标变换

旋转矩阵常用于主动旋转(旋转向量本身)与被动旋转(旋转坐标系)。需注意区分:

  • 主动旋转:固定坐标系下,将向量 $\mathbf{v}$转动,新坐标$\mathbf{v}' = \mathbf{R}\mathbf{v}$。
  • 被动旋转:向量不变,但坐标系按 $\mathbf{R}$旋转,则该向量在新坐标系下的表示为$\mathbf{v}' = \mathbf{R}^\top \mathbf{v}$。

在刚体运动中,旋转矩阵与平移向量结合构成 SE(3) 变换: $$ \begin{pmatrix} \mathbf{R} & \mathbf{t} \newline \mathbf{0}^\top & 1 \end{pmatrix} \in \mathrm{SE}(3). $$


7. 小结

关键点

  • 旋转矩阵是行列式为 $+1$的正交矩阵,构成群$\mathrm{SO}(n)$。
  • 二维旋转由一个角度参数化,三维旋转需要 3 个自由度(轴 $\mathbf{n}$和角$\theta$)。
  • 罗德里格斯公式提供了由任意轴和角构造旋转矩阵的直接方法。
  • 从旋转矩阵可提取特征值 $1$ 的特征向量(旋转轴)以及通过迹计算旋转角。
  • 其他无奇异的全局表示(如四元数)在插值和组合时更有优势,但与旋转矩阵可互相转换。

扩展阅读方向

  • 李代数 $\mathfrak{so}(3)$ 与指数映射
  • 旋转矩阵的插值:SLERP(球面线性插值)
  • 计算机视觉中的相机姿态估计(PnP)

基于 Obsidian 整理 · 由 VitePress 构建