字数
1189 字
阅读时间
5 分钟
旋转矩阵是在三维空间中描述物体旋转的一种数学工具。简单来说,它是一个3x3的矩阵,当它乘以一个点的坐标向量时,会得到这个点围绕原点旋转后的新坐标,整个过程中不改变物体的大小和形状。
旋转矩阵有两个核心作用:
- 旋转向量或物体(主动旋转):在一个固定的坐标系中,将一个点或整个物体进行旋转。这是最常见的用法。
- 坐标系变换(被动旋转):点或物体保持不动,将坐标系本身进行旋转,从而得到该点在新的坐标系下的坐标。
这两种作用所使用的旋转矩阵互为转置(也是互为逆矩阵)。
如何快速判断旋转矩阵的意义
要快速理解一个旋转矩阵代表了什么样的旋转,最直观和有效的方法是观察它的列向量。
一个3x3的旋转矩阵 R 可以写成:
[ r11 r12 r13 ]
R = [ r21 r22 r23 ]
[ r31 r32 r33 ]
这里的每一列都告诉你原始坐标系的基向量(x, y, z轴的单位向量)旋转之后的新方向。
- 第一列
[r11, r21, r31]
:代表原始的 x轴(1, 0, 0)
旋转后指向的新坐标。 - 第二列
[r12, r22, r32]
:代表原始的 y轴(0, 1, 0)
旋转后指向的新坐标。 - 第三列
[r13, r23, r33]
:代表原始的 z轴(0, 0, 1)
旋转后指向的新坐标。
通过“读”这三列,你就可以立刻在脑海中构建出旋转之后坐标系的姿态,从而理解这个旋转的意义。
实例解析
1. 二维旋转矩阵
在二维平面中,一个标准的逆时针旋转矩阵形式如下:
R(θ) = [ cos(θ) -sin(θ) ]
[ sin(θ) cos(θ) ]
这个矩阵表示将一个点或向量逆时针旋转 θ 度。
快速判断方法:
- 看到这个形式,就知道是二维旋转。
- 第一列
[cos(θ), sin(θ)]
是原x轴(1,0)
旋转θ角后的新坐标。 - 第二列
[-sin(θ), cos(θ)]
是原y轴(0,1)
旋转θ角后的新坐标。
示例:逆时针旋转90度 θ = 90°,cos(90°) = 0, sin(90°) = 1。矩阵为:
R(90°) = [ 0 -1 ]
[ 1 0 ]
- 意义:
- 第一列
[0, 1]
表示原x轴(1,0)
跑到了y轴(0,1)
的位置。 - 第二列
[-1, 0]
表示原y轴(0,1)
跑到了负x轴(-1,0)
的位置。 - 综合起来,就是整个坐标系逆时针旋转了90度。
- 第一列
2. 三维基本旋转矩阵
在三维空间中,绕单一轴的旋转非常常见,并且有固定的模式。
绕 x 轴旋转 (Roll):x 坐标不变,y 和 z 坐标进行二维旋转。
[ 1 0 0 ] Rx(γ) = [ 0 cos(γ) -sin(γ) ] [ 0 sin(γ) cos(γ) ]
快速判断:看到第一行和第一列是
[1, 0, 0]
,就知道这是绕x轴的旋转。绕 y 轴旋转 (Pitch):y 坐标不变,x 和 z 坐标进行旋转。
[ cos(β) 0 sin(β) ] Ry(β) = [ 0 1 0 ] [ -sin(β) 0 cos(β) ]
快速判断:看到第二行和第二列是
[0, 1, 0]
,就知道这是绕y轴的旋转。绕 z 轴旋转 (Yaw):z 坐标不变,x 和 y 坐标进行二维旋转。
[ cos(α) -sin(α) 0 ] Rz(α) = [ sin(α) cos(α) 0 ] [ 0 0 1 ]
快速判断:看到第三行和第三列是
[0, 0, 1]
,就知道这是绕z轴的旋转。
总结与验证
- 核心技巧:要快速理解一个旋转矩阵,就去看它的三列,它们分别代表了原x, y, z轴旋转后的新方向。
- 验证方法:一个矩阵必须满足以下两个条件才能被称为纯粹的旋转矩阵:
- 正交矩阵:它的转置等于它的逆 (
Rᵀ = R⁻¹
)。这意味着所有列向量都是单位向量,并且相互垂直。 - 行列式值为+1:这保证了旋转不会改变物体的“手性”(例如,不会将右手坐标系变成左手坐标系)。 不同任务如何求解旋转矩阵
- 正交矩阵:它的转置等于它的逆 (