一. 仿射变换的定义和种类
仿射变换,affine transform。主要由线性变换和平移变换两部分组成。
平移变换比较好理解,那么什么是线性变换呢?下面给出线性变换的几个特征:
- 变换之前是直线的,变换之后依然是直线。
- 变换前后比例不会变。也就是说,一开始某个点是线段的中点,在变换之后,依然还是重点。
旋转变换就是一个非常重要的线性变换,大家请思考:一条线段经过旋转之后,是不是仍然是一条线段?一条线段上的中点,在旋转之后是不是还是中点?
类似旋转变换这类的线性变换还有很多,总的来说,仿射变换可以分为下面几类:
平移,翻转,旋转,缩放,剪切。
二. 平移
平移的实现比较简单,只要在原来向量的基础上再加上一个平移向量就可以了:
还有另外一种更为推荐的实现也可以进行平移变换,那就是舍弃向量的加法,改用矩阵乘法。
这样做的好处是,能够把所有affine transformation都统一成