欢迎来到矩阵变换的世界!

你好!本章将带你进入几何与矩阵力量交汇的领域。如果“变换(transformation)”这个术语听起来很复杂,别担心——它其实就是指图形的移动或改变。使用 2x2 矩阵,我们只需通过简单的乘法,就能完成旋转、反射等多种操作。

为什么这很重要? 在计算机图形学、工程学和物理学等领域,矩阵是计算物体如何在空间中移动、缩放或变形的基础工具。掌握了这一章,你不仅是在学习数学,更是获得了一个解决几何问题的强大代数工具!

1. 基础知识:映射点

1.1 什么是变换矩阵?

变换矩阵(transformation matrix) \(\mathbf{M}\) 是一个 2x2 矩阵。当它与一个位置向量(即点)相乘时,会将其变换为一个新的位置向量(即像点)。

我们将坐标为 \((x, y)\) 的点 \(P\) 表示为列向量 \(\mathbf{p} = \begin{pmatrix} x \\ y \end{pmatrix}\)。

变换过程始终遵循:

$$ \mathbf{M} \mathbf{p} = \mathbf{p}' $$

其中 \(\mathbf{p}'\) 是变换后的像点,坐标为 \((x', y')\)。

简单来说: 把矩阵 \(\mathbf{M}\) 想象成一台小型机器。你把原始点的坐标放进去,机器就会吐出变换后新点的坐标!

1.2 映射的步骤示例

设变换矩阵为 \( \mathbf{T} = \begin{pmatrix} 2 & 1 \\ 0 & 3 \end{pmatrix} \)。求点 \( A(4, -1) \) 的像。

  1. 将点 A 写成列向量:\( \mathbf{a} = \begin{pmatrix} 4 \\ -1 \end{pmatrix} \)。
  2. 进行矩阵乘法: $$ \mathbf{a}' = \mathbf{T} \mathbf{a} = \begin{pmatrix} 2 & 1 \\ 0 & 3 \end{pmatrix} \begin{pmatrix} 4 \\ -1 \end{pmatrix} $$
  3. 计算结果向量: $$ \mathbf{a}' = \begin{pmatrix} (2)(4) + (1)(-1) \\ (0)(4) + (3)(-1) \end{pmatrix} = \begin{pmatrix} 8 - 1 \\ 0 - 3 \end{pmatrix} = \begin{pmatrix} 7 \\ -3 \end{pmatrix} $$

点 \(A(4, -1)\) 的像为 \(A'(7, -3)\)。

关键点 1:矩阵乘法的顺序很重要!

一定要确保变换矩阵乘以列向量时,矩阵在左侧:即 \( \mathbf{M} \mathbf{p} \)。你不能写成 \(\mathbf{p} \mathbf{M}\),因为这样矩阵维度不匹配,无法相乘!

2. 寻找变换矩阵

不要担心需要死记硬背每一个变换矩阵。有一个绝妙的技巧可以让你推导出任何 2D 变换矩阵 \(\mathbf{M}\)。

2.1 基向量技巧

所有的 2D 变换(假设原点保持不变)都是由两个基本基向量的变化决定的:

  • 沿 x 轴的向量: \( \mathbf{i} = \begin{pmatrix} 1 \\ 0 \end{pmatrix} \)
  • 沿 y 轴的向量: \( \mathbf{j} = \begin{pmatrix} 0 \\ 1 \end{pmatrix} \)

变换矩阵 \(\mathbf{M}\) 的构造方法是:将 \(\mathbf{i}\) 的像作为矩阵的第一列,将 \(\mathbf{j}\) 的像作为矩阵的第二列

如果变换 T 将 \(\mathbf{i} \to \begin{pmatrix} a \\ c \end{pmatrix}\) 且将 \(\mathbf{j} \to \begin{pmatrix} b \\ d \end{pmatrix}\),那么:

$$ \mathbf{M} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} $$

你知道吗? 这就是为什么以原点为中心的 2D 变换只需要 2x2 矩阵的原因。如果原点发生平移,我们需要使用不同的系统(称为齐次坐标,通常在进阶课题中涉及,所以我们这里只讨论基于原点的变换!)。

2.2 示例:求关于直线 \(y = -x\) 的反射矩阵

1. \(\mathbf{i} = (1, 0)\) 去了哪里?
将 \((1, 0)\) 沿直线 \(y = -x\) 反射,会交换坐标并改变符号。
\(\mathbf{i}\) 的像是 \((0, -1)\)。这就是第一列:\(\begin{pmatrix} 0 \\ -1 \end{pmatrix}\)。

2. \(\mathbf{j} = (0, 1)\) 去了哪里?
将 \((0, 1)\) 沿直线 \(y = -x\) 反射。
\(\mathbf{j}\) 的像是 \((-1, 0)\)。这就是第二列:\(\begin{pmatrix} -1 \\ 0 \end{pmatrix}\)。

3. 组合成矩阵: $$ \mathbf{M} = \begin{pmatrix} 0 & -1 \\ -1 & 0 \end{pmatrix} $$

记忆小贴士: M 的列向量简单来说就是点 (1, 0) 和 (0, 1) 的像。做题时先关注这两个点!

3. 关键标准变换

你需要能够识别并写出这些以原点 \((0, 0)\) 为中心的标准 2D 变换矩阵。

3.1 旋转 (R)

除非另有说明,旋转均为逆时针。如果顺时针旋转 \(\theta\) 角,则在公式中使用 \(-\theta\)。

绕原点逆时针旋转 \(\theta\) 角: $$ \mathbf{R} = \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} $$

示例: 逆时针旋转 \(90^\circ\) (\(\theta = 90^\circ\)): $$ \mathbf{R}_{90} = \begin{pmatrix} \cos 90^\circ & -\sin 90^\circ \\ \sin 90^\circ & \cos 90^\circ \end{pmatrix} = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix} $$

3.2 反射 (R)

反射将点映射到其关于某条直线(反射轴)的镜像位置。

  • 关于 x 轴反射 (\(y=0\)): $$ \mathbf{R}_{x} = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} $$
  • 关于 y 轴反射 (\(x=0\)): $$ \mathbf{R}_{y} = \begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix} $$
  • 关于直线 \(y=x\) 反射: (交换 x 和 y) $$ \mathbf{R}_{y=x} = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} $$
  • 关于直线 \(y=-x\) 反射: (交换 x 和 y,并同时取反) $$ \mathbf{R}_{y=-x} = \begin{pmatrix} 0 & -1 \\ -1 & 0 \end{pmatrix} $$
3.3 缩放 (E)

缩放(Enlargement)是以原点为中心,按比例因子 \(k\) 进行的伸缩。每个坐标都会乘以 \(k\)。

以原点为中心的缩放,比例因子 \(k\): $$ \mathbf{E} = \begin{pmatrix} k & 0 \\ 0 & k \end{pmatrix} $$

注意: 如果 \(k\) 为负数,则相当于缩放加 \(180^\circ\) 旋转。如果 \(k=1\),则矩阵为单位矩阵 \( \mathbf{I} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \),它不会对图形产生任何改变!

3.4 拉伸 (S)

拉伸仅改变平行于某一坐标轴的尺寸。

  • 平行于 x 轴拉伸(y 坐标保持不变),因子为 \(k\): $$ \mathbf{S}_{x} = \begin{pmatrix} k & 0 \\ 0 & 1 \end{pmatrix} $$
  • 平行于 y 轴拉伸(x 坐标保持不变),因子为 \(k\): $$ \mathbf{S}_{y} = \begin{pmatrix} 1 & 0 \\ 0 & k \end{pmatrix} $$
3.5 切变 (Sh)

切变(Shear)是指沿某一坐标轴平移,移动距离取决于到另一坐标轴的距离。

  • 平行于 x 轴切变: x 坐标的变化量是 \(k \times y\) 坐标。(平行于 x 轴的线是不变量。) $$ \mathbf{Sh}_{x} = \begin{pmatrix} 1 & k \\ 0 & 1 \end{pmatrix} $$
  • 平行于 y 轴切变: y 坐标的变化量是 \(k \times x\) 坐标。(平行于 y 轴的线是不变量。) $$ \mathbf{Sh}_{y} = \begin{pmatrix} 1 & 0 \\ k & 1 \end{pmatrix} $$

快速回顾:关键矩阵

单位矩阵: \( \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \) (不变)

缩放 (k): \( \begin{pmatrix} k & 0 \\ 0 & k \end{pmatrix} \)

旋转 (\(\theta\)): \( \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)

其他矩阵中 '1' 和 '0' 的位置告诉你哪个轴受到影响或保持不变!

4. 复合变换

在现实世界中,物体经常经历多次移动。复合变换就是一次变换接着另一次变换。

4.1 乘法顺序

如果一个图形先经受变换 \(T_1\),再经受变换 \(T_2\),且对应的矩阵分别为 \(\mathbf{M}_1\) 和 \(\mathbf{M}_2\),那么组合后的变换矩阵 \(\mathbf{M}\) 即为两个矩阵的乘积。

$$ \mathbf{M} = \mathbf{M}_2 \mathbf{M}_1 $$

关键点(警惕常见错误!): 矩阵乘法的执行顺序与变换应用的顺序相反!

如果你先应用 \(T_1\),那么它的矩阵 \(\mathbf{M}_1\) 必须写在靠近位置向量 \(\mathbf{p}\) 的那一侧: $$ \mathbf{p}' = \mathbf{M}_2 (\mathbf{M}_1 \mathbf{p}) $$

助记法:从右向左读!
先作用于向量的矩阵写在右边。
4.2 示例:合并变换

求先进行关于直线 \(y=x\) 的反射,再进行绕原点顺时针 \(90^\circ\) 旋转的复合变换矩阵。

1. 定义矩阵(顺时针 \(90^\circ\) 即 \(\theta = -90^\circ\)):
反射 \(T_1\): \( \mathbf{M}_1 = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \)
旋转 \(T_2\): \( \mathbf{M}_2 = \begin{pmatrix} \cos(-90) & -\sin(-90) \\ \sin(-90) & \cos(-90) \end{pmatrix} = \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} \)

2. 计算复合矩阵 \(\mathbf{M} = \mathbf{M}_2 \mathbf{M}_1\): $$ \mathbf{M} = \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} = \begin{pmatrix} (0)(0) + (1)(1) & (0)(1) + (1)(0) \\ (-1)(0) + (0)(1) & (-1)(1) + (0)(0) \end{pmatrix} $$

$$ \mathbf{M} = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} $$

观察: 这个复合变换的结果相当于关于 x 轴的反射!

5. 面积比例因子与逆变换

5.1 行列式与面积

变换矩阵 \(\mathbf{M} = \begin{pmatrix} a & b \\ c & d \end{pmatrix}\) 的行列式,记作 \(\det(\mathbf{M})\) 或 \(|\mathbf{M}|\),代表了变换的面积比例因子

$$ \det(\mathbf{M}) = ad - bc $$

如果图形的原始面积为 \(A\),那么变换后的新面积 \(A'\) 为: $$ A' = |\det(\mathbf{M})| \times A $$ 我们使用绝对值,因为面积总是正数。

  • 若 \(|\det(\mathbf{M})| > 1\),图形面积变大。
  • 若 \(|\det(\mathbf{M})| < 1\),图形面积变小。
  • 若 \(|\det(\mathbf{M})| = 1\),面积保持不变(如旋转、反射和切变)。

奇异矩阵: 若 \(\det(\mathbf{M}) = 0\),该矩阵称为奇异矩阵(singular matrix)。这意味着该变换将整个平面映射到一条线或一个点上。此时面积变为 0,且该变换不可逆。

5.2 逆变换

如果变换 \(\mathbf{M}\) 将 \(P \to P'\),那么逆变换 \(\mathbf{M}^{-1}\) 将 \(P' \to P\)。

逆矩阵仅在行列式不为零时(即矩阵为非奇异矩阵)存在。

回顾 2x2 逆矩阵公式: $$ \mathbf{M}^{-1} = \frac{1}{\det(\mathbf{M})} \begin{pmatrix} d & -b \\ -c & a \end{pmatrix} $$

逆变换会“撤销”原始变换。例如,逆时针 \(+30^\circ\) 旋转的逆变换就是顺时针 \(-30^\circ\) 旋转。

6. 不变点与不变线

当应用一个变换时,有些点可能不会移动,有些直线可能位置不变(即使线上的点发生了移动)。这些是变换中的关键特征。

6.1 寻找不变点

不变点(invariant point) \(\mathbf{p}\) 是指变换后映射到自身的点:\(\mathbf{M} \mathbf{p} = \mathbf{p}\)。

设 \( \mathbf{M} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \) 且 \( \mathbf{p} = \begin{pmatrix} x \\ y \end{pmatrix} \)。

我们求解方程组: $$ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} x \\ y \end{pmatrix} $$

这可以重写为: $$ \begin{pmatrix} a-1 & b \\ c & d-1 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} $$

示例: 对于任何以原点为中心的旋转或缩放,原点 \((0, 0)\) 始终是唯一的不变点。

6.2 寻找不变线

不变线(invariant line)是指线上的每个点变换后依然落在原直线上(尽管点本身可能沿直线移动)。

若 \(y = mx + c\) 是一条不变线,则对于线上的任意点 \((x, y)\),其像 \((x', y')\) 也必须满足 \(y' = mx' + c\)。

这通常需要建立联立方程组,并找出结果在一定 x 值范围内成立的情况。这往往是该课题中代数要求最高的部分。

关键点 2:几何代数化

这一章的核心就是将几何(旋转、切变)转化为代数(矩阵乘法)。当你被要求“描述变换”时,你必须说明变换类型(如旋转)、比例因子(如适用)以及旋转中心/对称轴(如绕原点,关于 \(y=x\) 反射)。