首页 > 代码库 > 二维图形的几何变换【转】
二维图形的几何变换【转】
转自:lab104_yifanhttp://blog.csdn.net/accelerator_/article/details/39253983
1、基本几何变换及变换矩阵
基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、比例、旋转、反射和错切等。
1.1 平移变换
是指将p点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。他是一种不产生变形而移动物体的刚体变换(rigid-body transformation),如下图所示。
图1-1 平移变换
推导:
求得平移变换矩阵如下:
其中Tx,Ty称为平移矢量。
1.2 缩放变换
缩放变换是指对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。其中Sx和Sy称为缩放系数。
图1-2缩放变换(Sx=2,Sy=3)
推导:
矩阵:
缩放变换可改变物体的大小,如下图所示。当Sx=Sy >1时,图形沿两个坐标轴方向等比例放大;当Sx=Sy<1,图形沿两个坐标轴方向等比例缩小;当Sx≠Sy,图形沿两个坐标轴方向作非均匀的比例变换。
图1-3比例变换
(a)Sx与Sy相等 (b)Sx与Sy不相等
1.3 旋转变换
二维旋转是指将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p’的重定位过程。
图1-4旋转变换
推导:利用极坐标方程
逆时针旋转θ角的矩阵如下:
1.4 对称变换
对称变换后的图形是原图形关于某一轴线或原点的镜像。
图1-5对称变换
(1)关于x轴对称
图1-6关于x轴对称
(2)关于y轴对称
图1-7关于y轴对称
(3)关于原点对称
图1-8关于原点对称
(4)关于y=x轴对称
图1-9关于y=x轴对称
(5)关于y=-x轴对称
图1-10关于y=-x轴对称
1.5 错切变换
错切变换也称为剪切、错位变换,用于产生弹性物体的变形处理。
图1-11错切变换
错切变换的变换矩阵为:
(1)沿x方向错切:b=0
(2)沿y方向错切:c=0
(3)两个方向错切:b和c都不等于0。
2、 复合变换
如果图形要做一次以上的几何变换,那么可以将各个变换矩阵综合起来进行一步到位的变换。复合变换有如下的性质:
1)复合平移
对同一图形做两次平移相当于将两次的平移两加起来:
2)复合缩放
两次连续的缩放相当于将缩放操作相乘:
3)复合旋转
两次连续的旋转相当于将两次的旋转角度相加:
缩放、旋转变换都与参考点有关,上面进行的各种变换都是以原点为参考点的。如果相对某个一般的参考点(xf,yf)作缩放、旋转变换,相当于将该点移到坐标原点处,然后进行缩放、旋转变换,最后将(xf,yf)点移回原来的位置。
4)关于(xf,yf)点的缩放变换
5)绕(xf,yf)点的旋转变换
3、二维图形几何变换的计算
几何变换均可表示成P’=P*T的形式
(1)点的变换:先将点表示为规范化齐次坐标形式,再乘以变换矩阵。
(2)直线的变换:将直线的两个端点表示为规范化齐次坐标形式,再乘以变换矩阵。
(3)多边形的变换:将多边形的顶点表示为规范化齐次坐标形式,再乘以变换矩阵。
(4)曲线的变换:将曲线的每个点表示为规范化齐次坐标形式,再乘以变换矩阵。
4、复合变换的矩阵点乘的先后问题
1)如果采用以下方式计算几何变换的变换矩阵:
如上范例所示,其先执行变换的矩阵放在前面,后执行变换的矩阵放在后面。
2)如果采用以下方式计算几何变换的变换矩阵:
如上范例所示,其先执行变换的矩阵放在后面,后执行变换的矩阵放在前面。
这是因为矩阵的特性:
二维图形的几何变换【转】