仿射变换(Affine Transformation或 AffineMap)是一种二维坐标到二维坐标之间的线性变换,它保持了二维图形的“平直性”(即:直线经过变换之后依然是直线)和“平行性”(即:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。
仿射变换可以通过一系列的原子变换的复合来实现,包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。
旋转变换,目标图形围绕原点顺时针旋转theta弧度,变换矩阵为:
[
[
[
平移变换,将每一点移动到(x+t, y+t),变换矩阵为:
[
[
[
缩放变换,将每一点的横坐标放大(缩小)至sx倍,纵坐标放大(缩小)至sy倍,变换矩阵为:
[
[
[
旋转变换,目标图形以(x, y)为轴心顺时针旋转theta弧度,变换矩阵为:
[
[
[
相当于两次平移变换与一次原点旋转变换的复合:
[1
[0
[0
剪切变换,变换矩阵为:
[
[
[
相当于一个横向剪切与一个纵向剪切的复合
[
[
[