仿射变换
仿射变换是几何学中一种重要的变换,它保持了图形的“平直性”和“平行性”。简单来说,经过仿射变换后,直线仍然是直线,平行线仍然保持平行,但线段的长度和角度可能会发生改变。
让我们从最基础的概念开始理解。
第一步:从线性变换到仿射变换
想象一个二维平面。一种最简单的变换是“线性变换”,例如旋转、缩放或错切。线性变换有一个关键特性:它必须通过坐标原点 (0,0)。这意味着,如果你对一组点进行线性变换,整个图形会以原点为中心发生变化。
但如果我们希望变换后的图形可以移动到平面上的任何位置,而不仅仅是以原点为中心呢?这时就需要在线性变换的基础上加上一个“平移”操作。这个“线性变换”加上“平移”的组合,就是仿射变换。用公式表示一个二维仿射变换就是:
新x值 = a * 原x值 + b * 原y值 + e
新y值 = c * 原x值 + d * 原y值 + f
其中,a, b, c, d 决定了线性变换部分(旋转、缩放、错切),而 e, f 则决定了平移部分。
第二步:仿射变换的核心性质
仿射变换有两个最基本的性质,理解了它们就掌握了仿射变换的精髓:
- 保持共线性:变换前位于同一条直线上的点,在变换后仍然位于同一条直线上。直线永远不会被“弯曲”成曲线。
- 保持比例关系:变换前一条线段上的点将线段分割成的比例,在变换后保持不变。例如,如果一个点是某条线段的中点,那么变换后它依然是新线段的中点。同样,如果一点将线段分成1:3的两部分,变换后这个比例关系依旧成立。
第三步:常见的仿射变换类型
所有满足上述性质的变换都是仿射变换,它包括了一些我们熟悉的特殊情形:
- 平移:整个图形在平面上沿着某个方向移动一段距离。只有
e, f不为零。 - 缩放:图形在x轴和/或y轴方向上被拉伸或压缩。
- 旋转:图形围绕一个点(通常是原点)旋转一个角度。
- 错切:图形像一叠卡片被推开一样发生倾斜变形。
- 反射:图形像照镜子一样关于一条直线(轴)翻转。
需要注意的是,纯粹的平移、旋转和反射不仅是仿射变换,还是更特殊的“等距变换”,因为它们保持了任意两点间的距离不变。而缩放的仿射变换则会改变距离。
第四步:一个直观的例子——看一幅画
想象你正对着一幅挂在墙上的正方形画。
- 如果你向前走几步(改变观察位置),这幅画在你视网膜上的成像就是一个仿射变换后的图形。正方形可能会变成一个一般的平行四边形(发生了错切),但画的边框仍然是直线(保持共线性),画框上各个部分的比例关系也没有变。
- 然而,如果你用一个鱼眼镜头去拍这幅画,直线可能会变成弯曲的,这就不是仿射变换了。
第五步:仿射变换的应用
仿射变换在计算机图形学、计算机视觉和工程制图中有着极其广泛的应用。
- 计算机图形学:当需要将一个二维图像或三维模型进行旋转、缩放、倾斜或放置到场景中的特定位置时,本质上都是在进行仿射变换计算。
- 工程制图:为了更清晰地展示物体的结构,经常使用“轴测投影”(一种仿射变换)将三维物体绘制在二维图纸上。这种投影保持了物体的平行线关系,便于进行尺寸度量。
总结来说,仿射变换是线性几何变换(旋转、缩放、错切)与平移的结合,它最核心的价值在于保持了图形的“直线结构”和“比例关系”,是连接抽象几何与真实世界应用的一座重要桥梁。