三维线性变换

一、从二维到三维

二维的核心直觉——“矩阵的每一列 = 基向量的像”——原封不动推广到三维。

三维空间有三条标准基向量:

ı^=(100),ȷ^=(010),k^=(001)\hat{\imath} = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}, \quad \hat{\jmath} = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}, \quad \hat{k} = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}

设线性变换把三个基向量分别送到:

T(ı^)=(adg),T(ȷ^)=(beh),T(k^)=(cfi)T(\hat{\imath}) = \begin{pmatrix} a \\ d \\ g \end{pmatrix}, \quad T(\hat{\jmath}) = \begin{pmatrix} b \\ e \\ h \end{pmatrix}, \quad T(\hat{k}) = \begin{pmatrix} c \\ f \\ i \end{pmatrix}

那么3×3 矩阵:

M=(abcdefghi)M = \begin{pmatrix} \color{blue}{a} & \color{red}{b} & \color{green}{c} \\ \color{blue}{d} & \color{red}{e} & \color{green}{f} \\ \color{blue}{g} & \color{red}{h} & \color{green}{i} \end{pmatrix}
  • 第 1 列(蓝)= ı^\hat{\imath} 的像
  • 第 2 列(红)= ȷ^\hat{\jmath} 的像
  • 第 3 列(绿)= k^\hat{k} 的像

二、三维矩阵乘向量

任意向量 v=(x,y,z)T=xı^+yȷ^+zk^\mathbf{v} = (x, y, z)^T = x\hat{\imath} + y\hat{\jmath} + z\hat{k}:

Mv=x(adg)+y(beh)+z(cfi)=(ax+by+czdx+ey+fzgx+hy+iz)M\mathbf{v} = x\begin{pmatrix} a \\ d \\ g \end{pmatrix} + y\begin{pmatrix} b \\ e \\ h \end{pmatrix} + z\begin{pmatrix} c \\ f \\ i \end{pmatrix} = \begin{pmatrix} ax + by + cz \\ dx + ey + fz \\ gx + hy + iz \end{pmatrix}

仍是”行 × 列”:结果第 ii 个分量 = 矩阵第 ii 行与向量逐项相乘相加。

三、三维空间中的”网格”

三维的”网格”是三维格子。线性变换把它变成平行六面体网格:

  • 保持直线 ✅
  • 保持平行、等距 ✅
  • 原点不动 ✅

三维线性变换的直观效果:

变换矩阵(示例)效果
绕 z 轴旋转(cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001)\begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}绕 z 轴转动
x 方向缩放(200010001)\begin{pmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}x 方向拉长 2 倍
沿 xy 平面剪切(101010001)\begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}按 z 值偏移

绕 z 轴旋转 θ 角

Rz(θ)=(cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001)R_z(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}

验证:ı^=(1,0,0)→(cos⁡θ,sin⁡θ,0)\hat{\imath} = (1,0,0) \to (\cos\theta, \sin\theta, 0)——绕 z 轴旋转 θ 角后的 x 轴方向 ✓;k^=(0,0,1)→(0,0,1)\hat{k} = (0,0,1) \to (0,0,1) 不变 ✓

四、三维中的复合变换

三维矩阵乘法规则与二维完全一样(行 × 列),且同样不满足交换律:

M2M1≠M1M2(一般情况)M_2 M_1 \neq M_1 M_2 \quad \text{(一般情况)}

先作用的矩阵写在右边。例如”先绕 z 旋转再缩放”的复合矩阵 = (缩放矩阵)·(旋转矩阵)。

五、应用:为什么三维线性变换如此重要

领域应用
计算机图形学3D 物体的旋转、缩放、投影都靠 3×3 矩阵(加上齐次坐标处理平移)
机器人学机械臂末端位姿的变换矩阵
物理张量、转动惯量的坐标变换
机器学习神经网络每一层本质是”仿射变换”(矩阵乘法 + 偏置)

图形学的关键技巧:把一个物体的所有顶点先乘以”旋转矩阵”、再乘以”缩放矩阵”,可以预先合并成一个矩阵,再对每个顶点只做一次乘法——大幅提升渲染性能。

六、如何建立三维直觉(练习建议)

  1. 想象三个基向量 ı^,ȷ^,k^\hat{\imath}, \hat{\jmath}, \hat{k} 分别指向 x、y、z 轴正方向
  2. 给定一个 3×3 矩阵,先看它的三列,想象三个基向量分别”飞”到哪
  3. 想象整个三维网格跟随基向量变形
  4. 用”先作用的矩阵在右边”推导复合变换

总结

本文出现的符号

符号类型读音/说明在本文中的含义
ı^,ȷ^,k^\hat{\imath}, \hat{\jmath}, \hat{k}数学符号i hat, j hat, k hat三维空间的三条单位基向量
M=(abcdefghi)M = \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix}数学符号3 by 3 matrix记录三维线性变换的 3×3 矩阵,三列即三基向量的像
MvM\mathbf{v}数学符号M times v三维矩阵乘向量,仍按行×列计算
Rz(θ)R_z(\theta)数学符号R z of theta绕 z 轴旋转 θ\theta 角的旋转矩阵
θ\theta希腊字母Theta(西塔)绕 z 轴旋转的角度
cos⁡θ,sin⁡θ\cos\theta, \sin\theta数学符号cos theta, sin theta旋转矩阵中的三角函数项
M2M1≠M1M2M_2 M_1 \neq M_1 M_2数学符号not equal三维复合变换同样不满足交换律

中英对照

中文术语英文术语音标说明
三维线性变换3D linear transformation/θriː diː ˈlɪniə ˌtrænsfəˈmeɪʃən/把二维直觉推广到三维空间的线性变换
基向量basis vector/ˈbeɪsɪs ˈvektə/三维中的 ı^,ȷ^,k^\hat{\imath}, \hat{\jmath}, \hat{k}
旋转矩阵rotation matrix/rəʊˈteɪʃən ˈmeɪtrɪks/如绕 z 轴的 Rz(θ)R_z(\theta)
平行六面体parallelepiped/ˌpærəleˈlepɪpɪd/三个基向量张成的三维格子
齐次坐标homogeneous coordinates/ˌhɒməˈdʒiːniət koʊˈɔːdɪnəts/图形学中把平移并入矩阵的技巧
仿射变换affine transformation/əˈfaɪn ˌtrænsfəˈmeɪʃən/矩阵乘法加偏置,神经网络每一层的本质
机器人学robotics/rəʊˈbɒtɪks/机械臂末端位姿用变换矩阵描述
交换律commutativity/kəˌmjuːtəˈtɪvəti/三维矩阵乘法同样不满足

发现内容有问题?

告诉我们哪里需要改进。