文档介绍:第3章图形的基本运算
赵立强
图形的几何变换
为了使图形几何变换的形式规范,其矩阵变换适合硬件方式实现,现在一般都在齐次坐标系中对图形进行几何变换。二维齐次坐标系的定义如下。
二维平面中的一个点P(x,y),在齐次坐标系中可表示成P(wx,wy,wz,w),其中w是一个不为0的常量;反过来,只要能给定一个点的齐次坐标P(x’,y’,w),就能得到这个点的二维直角坐标x=x’/w,y=y’/w。在本小节中w总取常数1(即齐次坐标的“归一化”)。
可以把齐次坐标理解成将二维平面作w的比例变换之后,嵌入到三维空间里的某个平面中(其中三维空间的z=w=1)。
在齐次坐标系中,几何变换的齐次变换矩阵形式为
因此对一个点(x,y)进行几何变换可用变换矩阵方式表示为:
变换后的点=变换前的点·变换矩阵
写成标量形式为:
一、几何变换常用的齐次坐标变换矩阵
下面考虑在齐次坐标系中对图形进行平移、比例、反射、旋转和错切等变换以及相应地变换矩阵。
如果点进行平移变换,则其矩阵可简化为:
这里L,M为点从坐标系当前位置分别沿x,y轴正向移动的分量。若L,M值为正,则实际移动方向与此规定一致;若L,M值为负,则实际移动方向与此规定相反,见图。
如果点相对坐标系原点进行比例变换,则其矩阵可简化为:
若A=D=1,则为恒等变换;
若A=D>1,则图形放大;
若A=D<1,则图形缩小;若AD,则会引起图形比例变换失真,见图。
如果点相对于y轴、X轴或原点进行反射变换,其变换矩阵分别为:
对点P进行这三种反射变换所产生的效果见图。
x
x
y
x
y
y
如果点相对坐标系原点旋转角度,则其变换矩阵为
其中为旋转角,当逆时针方向旋转时为正,否则为负,见图。
二维错切变换使用较少,该变换留在三维图形的几何变换中再讨论。
所谓逆变换就是与原变换过程方向相反的一种变换,它的矩阵表示形式如下。
设有两个矩阵T1,T2,其中T1已知,当
T1·T2=I (I为单位矩阵)
时,称这两个矩阵互逆,此时T1的逆矩阵T2可表示为T2=T1-。
逆矩阵的意义在于,当一个点通过矩阵T1变换成另一个点之后,当再用该矩阵T1的逆矩阵T2对它进行变换,则这个点又还原到其原来的位置上。
前面介绍的平移、比例、反射、旋转、错切等变换都有其逆变换。
二、二维图形的几何变换
有了点的齐次坐标以及变换矩阵之后,就可以用这种矩阵的组合方式表示一个图形连续进行的几何变换,以产生所需要的结果,下面说明如何完成这种组合运算。
例3-1 一个由顶点(10,20),(20,20)和(15,30)所定义的三角形,让它相对于点Q(5,25)正向旋转30°,求其变换后的三角形。
第一步,平移Q点至坐标系原点,三角形三个顶点的原齐次坐标为
故此时变换后其三个顶点的齐次坐标为
第二步,三角形相对坐标系原点旋转30°角,此时该三角形三个顶点的齐次坐标为
第三步,参考点Q还原至原位置,此时三角形三个顶点的齐次坐标为
例3—2 一个三角形相对轴线y=bx+a作反射变换,求相应的变换矩阵。
第一步,将点(0,a)平移至坐标系原点,见图(b)。其变换矩阵为:
第二步,将轴线y=bx顺时针方向旋转角θ,使其落在x轴上,见图(c)。角度θ的计算:
其变换矩阵为: