Skip to content
字数
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轴旋转后的新方向。
  • 验证方法:一个矩阵必须满足以下两个条件才能被称为纯粹的旋转矩阵:
    1. 正交矩阵:它的转置等于它的逆 (Rᵀ = R⁻¹)。这意味着所有列向量都是单位向量,并且相互垂直。
    2. 行列式值为+1:这保证了旋转不会改变物体的“手性”(例如,不会将右手坐标系变成左手坐标系)。 不同任务如何求解旋转矩阵

贡献者

页面历史