第 3章 图形的基本运算
赵立强
3,1 图形的几何变换
为了使图形几何变换的形式规范, 其矩阵变换适合硬件方式实现, 现
在一般都在齐次坐标系中对图形进行几何变换 。 二维齐次坐标系的定义如
下 。
二维平面中的一个点 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)进行几何变换可
用变换矩阵方式表示为:
变换后的点 =变换前的点 ·变换矩阵
写成标量形式为:
一、几何变换常用的齐次坐标变换矩阵
下面考虑在齐次坐标系中对图形进行平移, 比例, 反射, 旋转和错
切等变换以及相应地变换矩阵 。
1,平移变换矩阵
如果点进行平移变换, 则其矩阵可简化为:
这里 L,M为点从坐标系当前位置分别沿 x,y轴正向移动的分量 。 若 L,
M值为正, 则实际 移动方向与此规定一致;若 L,M值为负, 则实际移动
方向与此规定相反, 见图 。
2.比例变换矩阵
如果点相对坐标系原点进行比例变换, 则其矩阵可简化为,
若 A=D=1,则为恒等变换;
若 A=D>1,则图形放大;
若 A=D<1,则图形缩小;若 AD,则会引起图形比例变换失真, 见图 。
3.反射变换矩阵
如果点相对于 y轴, X轴或原点进行反射变换, 其变换矩阵分别为,
对点 P进行这三种反
射变换所产生的效果
见图。
x
x
y
x
y
y
4.旋转变换矩阵
如果点相对坐标系原点旋转角度, 则其变换矩阵为
其中为旋转角, 当逆时针方向旋转时为正, 否则为负, 见图 。
5,错切变换矩阵
二维错切变换使用较少, 该
变换留在三维图形的几何变换
中再讨论 。
6.逆变换矩阵
所谓逆变换就是与原变换过程方向相反的一种变换, 它的矩阵表示
形式如下 。
设有两个矩阵 T1,T2,其中 T1已知, 当
T1·T2=I (I为单位矩阵 )
时, 称这两个矩阵互逆, 此时 T1的逆矩阵 T2可表示为 T2=T1-。
逆矩阵的意义在于, 当一个点通过矩阵 T1变换成另一个点之后, 当
再用该矩阵 T1的逆矩阵 T2对它进行变换, 则这个点又还原到其原来的位
置上 。
前面介绍的平移, 比例, 反射, 旋转, 错切等变换都有其逆变换 。
二、二维图形的几何变换
有了点的齐次坐标以及变换矩阵之后, 就可以用这种矩阵的组合方
式表示一个图形连续进行的几何变换, 以产生所需要的结果, 下面说明
如何完成这种组合运算 。
1,相对任意点的旋转与放大
例 3-1 一个由顶点 (10,20),(20,20)和 (15,30)所定义的三角形,
让它相对于点 Q(5,25)正向旋转 30°, 求其变换后的三角形 。
第一步, 平移 Q点至坐标系原点, 三角形三个顶点的原齐次坐标为
故此时变换后其三个顶点的齐次坐标为
第二步,三角形相对坐标系原点旋转 30° 角,此时该三角形三个顶
点的齐次坐标为
第三步,参考点 Q还原至原位置,此时三角形三个顶点的齐次坐标为
2.相对任意轴的反射变换
例 3—2 一个三角形相对轴线 y=bx+a作反射变换, 求相应的变换矩阵 。
第一步, 将点 (0,a)平移至坐标系原点, 见图 (b)。 其变换矩阵为:
第二步, 将轴线 y=bx顺时针方向旋转角 θ, 使其落在 x轴上, 见图 (c)。 角
度 θ 的计算,
?
?
?
?
?
?
?
?
?
?
?
?
10
010
001
a
T
其变换矩阵为,
第三步, 三角形相对 X轴作反射变换, 见图 (d),有,
第四步, 作第二步的逆变换, 见图 (e),有,
第五步, 作第一步的逆变换, 见图 (f),有,
把这五步组合在一起,表示三角形相对轴线 y=ax+b作反射变换,故有,
??
?
?
?
??
?
?
?
??
100
0c o ss in
0s inc o s
4 ??
??
T
??
?
?
?
??
?
?
?
??
100
010
001
3T
??
?
?
?
??
?
?
?
?
10
010
001
5
a
T
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
10
010
001
100
02c o s2s in
02s in2c o s
10
010
001
54321
aa
TTTTTT ??
??
可见用齐次坐标变换矩阵来表示这种组合变换是很方便的 (这个变换矩
阵实际上表示了任意一个图形相对轴线 y=ax+b进行反射变换 ),此时不妨
设原三角形的三个顶点坐标分别为 P1(x1,y1),P2(x2,y2),P3(x3,y3),
则反射后新三角形三个顶点的齐次坐标为,
T
yx
yx
yx
yx
yx
yx
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
1
1
1''
1''
1''
33
22
11
33
32
11
3.坐标系的变换
把一组点变换成另一组点的另一种可选择的方法是改变坐标系 。 下
面用两个例子来说明这种变换 。
这个例子说明:图形在坐标系中的旋转与图形不动而让坐标系反向旋转,这
两者产生的效果相同,因而其变换矩阵也相同。
实际上这一结论也适用于平移、比例、反射、错切等基本几何变换,即 图形
在坐标系中的变换等效于图形不变而让坐标系进行反向变换,这两者的变换效果
与变换矩阵是一样的 。
坐标变换与坐标系变换的关系
具体地说,图形在坐标系中的放大等效于图形保持不变而让坐标系
刻度尺寸缩小;图形在坐标系中沿坐标轴正向移动等效于图形保持不变
而让坐标系沿坐标轴负向移动;图形在坐标系中的正向旋转等于图形保
持不变而让坐标系负向旋转;图形相对 X轴进行反射变换等效于该图形保
持不变而让 y轴自身发生反射变换等,这一结论对计算机图形分析非常有
用。由此结论可知,表示坐标系变换所需要的矩 阵就是在坐标系中反向
变换这些点所需要的矩阵。
例 3—4 见图 3—7,在 XOY坐标系中,
点 P(3,3) 在 X'O'Y' 坐 标 系 中用 点
P(3.5,2.5)来确定它的位置, 求其
θ 角 。 其中 X'O'Y'坐标系原点位于
XOY坐标系的 (2,1)点处, 且 X'O'Y'
坐标系的刻度为 XOY坐标系的一半 。
第一步, 把坐标系 XOY平移至 (2,1)处, 以形成新的坐标系 X‘O’Y‘。 由
于坐标系沿坐标轴的正向移动等于相应图形沿坐标轴的负向移动, 故此
时坐标系平移变换矩阵为,
?
?
?
?
?
?
?
?
?
?
??
?
112
010
001
1T
第二步, 把坐标系 X‘O’Y’的刻度尺寸缩小一半 。 由于坐标系刻度尺寸的
缩小等于在原坐标系中图形的放大, 故此时坐标系刻度尺寸缩小的变换
矩阵为,
?
?
?
?
?
?
?
?
?
?
?
100
020
002
2T
第三步, 让坐标系 X‘O’Y‘逆时针方向旋转角 。 由于坐标系的旋转等于坐
标系中图形的反向旋转, 故坐标系的旋转变换矩阵为,
?
?
?
?
?
?
?
?
?
? ?
?
100
0c o ss in
0s inc o s
3 ??
??
T
第四步,求解角。依题意有关系式,