【CG】仿射变换(Affine Transformation)
定义
- 简单来说,“仿射变换”= “线性变换”+“平移”
- 线性变换
- 变换前是直线的,变换后依然是直线
- 变换前是平行线的,变换后依然是平行线
- 变换前是原点的,变换后依然是原点
- 仿射变换
- 变换前是直线的,变换后依然是直线
- 变换前是平行线的,变换后依然是平行线
- 所以,线性变换一定是仿射变换,仿射变换不一定是线性变换
图示
如上图线性变换就是通过 翻转
,旋转
,缩放
,错切
这四种原子变换复合而成的变换;仿射变换就是通过 平移
,翻转
,旋转
,缩放
,错切
这五种原子变换复合而成的变换。
齐次坐标表达
以二维图像的仿射变换为例,
在二维平面上
- 线性变换
- 仿射变换
引入齐次坐标表示
-
仿射变换
展开来看,就是 从代数角度看,仿射变换矩阵具有 6 个*度,一组对应点可以提供两个等式,因此基于不共线的三组对应点,可以唯一确定仿射变换。
- 从几何角度看,齐次坐标把二维上的仿射变换升维成了三维上的线性变换。可以去 Wikipedia上看这个的动图