矩阵乘法:复合变换
一、复合变换:连续做两次变换
想象先做一次旋转,再做一次剪切——这就是复合变换(composition):一个变换接着另一个变换。
向量 v ──(先) T₁──► T₁(v) ──(后) T₂──► T₂(T₁(v))
关键问题:两次线性变换的复合,还是线性变换吗?
是的。 因为线性变换保持直线、保持平行等距,做两次仍然保持——所以复合结果仍是线性变换,一定可以用一个矩阵表示。这个矩阵就是两个矩阵的乘积。
二、矩阵乘法的顺序:从右往左
设变换 的矩阵是 ,变换 的矩阵是 。先应用 、再应用 ,复合变换记为:
注意:先作用的矩阵写在右边! 表示”先 后 ”。
M₂M₁·v = M₂(M₁·v)
└┬─┘ └┬┘
先 M₁ 后 M₂
几何直觉:函数记号 是先算 再算 。矩阵乘法同理,最右边的矩阵最先作用。
矩阵乘法不满足交换律:一般 。
例:先旋转 90° 再剪切 ≠ 先剪切再旋转 90°顺序不同,结果完全不同。这与普通数字乘法(a×b = b×a)有本质区别。
三、矩阵乘法公式
设 ,,则复合 为:
记忆法:
- 结果的第 行第 列 = 第 行 × 第 列(逐项相乘相加)
- 几何验证:乘积矩阵的第 1 列 = 的 像 经过 变换后的位置,即
例:M₁ = 旋转90° [[0,-1],[1,0]],M₂ = 剪切 [[1,1],[0,1]]
先旋转再剪切:
M₂M₁ = [[1,1],[0,1]]·[[0,-1],[1,0]]
= [[1·0+1·1, 1·(-1)+1·0], [0·0+1·1, 0·(-1)+1·0]]
= [[1, -1],[1, 0]]
四、交互演示:先 A 后 B 与先 B 后 A
操作与观察:
- 切换”先旋转再剪切”与”先剪切再旋转”
- 对比两种顺序的最终网格——完全不同!
- 确认:先作用的矩阵写在乘积的右边
五、矩阵乘法的意义
| 视角 | 含义 |
|---|---|
| 代数 | 连续两次矩阵乘法的合并 |
| 几何 | 复合变换(先右后左) |
| 应用 | 把多次变换合并成一次,提高计算效率 |
在图形学中的意义:一个物体可能先缩放、再旋转、再平移(实际是齐次坐标下的仿射变换),可以预先把这些矩阵相乘成一个矩阵,再对每个顶点只做一次矩阵乘法——这正是 GPU 渲染的原理之一。
小结
- 复合变换仍是线性变换,其矩阵 = 各矩阵的乘积
- 先作用的矩阵写在右边: = 先 后
- 乘积公式:行 × 列,逐项相乘相加
- 矩阵乘法不交换:(顺序很重要)
- 实际应用:把多次变换预合并成一个矩阵
下一节:三维线性变换,把视角扩展到三维空间。
