关于此实验
使用一个 2×2 矩阵变换坐标网格、单位正方形和选定的输入向量。更改矩阵元素,观察拉伸、剪切、反射和压缩。重放变换以查看中间的线性映射,或拖动输入向量并比较它的像。两个坐标轴使用相同的比例尺,以确保几何关系仍有意义。
学习目标
- 将矩阵的列理解为坐标基向量的像
- 理解行列式的绝对值与面积缩放因子的关系
- 识别方向反转和奇异变换
- 为旋转、反射、伸缩和剪切建立矩阵
- 使用行列式判断矩阵是否有逆矩阵
使用方法
- 1保持 a 和 d 为 1、c 为 0,只改变 b。观察水平剪切及其面积缩放因子。
- 2选择“旋转 90 度”,并比较输入向量与最终变换后的向量。
- 3选择“反射”,并查看行列式的符号以及单位正方形的方向。
- 4选择“压缩”,然后拖动变换进度。注意正方形在何时失去面积。
- 5查看矩阵的第一列,找出向量 (1, 0) 的变换结果。对第二列和向量 (0, 1) 重复此操作。
- 6设置 a = 2、d = 0.5,并令 b = c = 0,进行一次伸缩变换。检查面积缩放因子是否为 1。
模型
假设
- 该映射是线性的,并固定原点。没有平移项。
- 原始网格和变换后的网格以相同的水平和垂直比例绘制。网格线可能会在视口边缘被裁切。
- 播放时插值的是矩阵各元素,而不是物理意义上的刚体旋转。即使最终矩阵是旋转矩阵,中间映射也可能使图形缩小、变形或塌缩。
- 高亮正方形在变换前的面积为 1。拖动输入向量不会改变矩阵。
在课堂上试试这个实验
- Q1为什么矩阵为 [1, b; 0, 1] 的剪切变换能保持面积?
- Q2奇异矩阵如何使两个不同的输入向量得到相同的像?
- Q3为什么从单位矩阵插值到反射矩阵时,行列式可能会经过 0?
- Q4哪个矩阵能将平面旋转 180°?它的行列式是多少?
- Q5如果行列式为 0,能否撤销该变换?为什么?
常见问题
为什么在旋转预设动画过程中,正方形可能会缩小?
只有最终矩阵才是所选的旋转矩阵。动画沿着矩阵各元素之间的直线进行插值,因此中间矩阵通常不是旋转矩阵。
行列式为负意味着什么?
它的绝对值仍表示面积缩放因子。负号表示方向反转,就像镜面反射一样。行列式为零时,面积会坍缩成一条线或一个点。
为什么矩阵的列如此重要?
第一列表示 (1, 0) 的变换结果,第二列表示 (0, 1) 的变换结果。其他所有向量都是这两个向量的线性组合,因此矩阵的列完整地描述了该变换。
