目录
概述
对于二维图形来讲,所有基本变换均可以通过确定图形的点的平移、对称、旋转、错切以及缩放几种变换组合得到,而在上述几种变换中,除对称变换外,其余变换均可通过点的其次坐标乘变换矩阵得到新位置坐标的方式实现。下面对这些变换方式或变换矩阵进行介绍。
假定点的坐标采取列向量形式,即用旧点坐标右乘变换矩阵得到新点坐标。
平移
平移变换较为简单,假设x方向上的变化量为dx,y方向上的变化量为dy,那么变换结果为:x`=x+dx, y`=y+dy,那么变换矩阵可以构造为:
对称
对于对称变换来讲,直接对点进行操作就很便利了,关于x对称:y坐标取反;关于y对称:x坐标取反;关于原点对称:xy坐标均取反;关于y=x对称:xy坐标互换,关于y=-x对称:x`=-y, y`=-x即可。
旋转
旋转操作与基准点的选择有很大关系,我们不妨首先假定旋转中心在原点。待旋转点的坐标(x, y)且原点指向该点的向量与x轴夹角为α, 长度为l的情况下,该点计划旋转角度为β(逆时针方向为正),那么有以下各式成立:
那么就有:
那么变换矩阵可构造为:
对于旋转中心不在原点的,我们可以先将旋转中心移动到原点,然后旋转,然后再变回去就可以了。
错切
假设x方向上的错切量为sx,y方向上的错切量为sy,那么变换结果为:x`=x+sx*y, y`=y+sy*x,那么变换矩阵可以构造为:
缩放
对于缩放变换,同样存在缩放中心的区别,我们这里首先对缩放中心在原点的情况进行说明,在这种情况下,假设x方向上的缩放比例为sx,y方向上的缩放比例为sy,那么变换后有:x`=sx*x, y`=sy*y,那么变换矩阵可以构造为:
对于缩放中心不在原点的,我们可以先将缩放中心移动到原点,然后进行缩放,然后再变回去就可以了。