第五章
图形变换与裁剪
计算机学院
苏小红
5.1 窗口视图变换
1.窗口和视图区
用户坐标系 ( world coordinate system,
简称 WC)
设备坐标系 ( device coordinate system,
简称 DC)
窗口区 ( window)
视图区 ( viewport)
2.窗口到视图区的变换
窗口区与视图区间的映射关系:
窗口区中的任一点 (x w,y w)
与视图区中的任一点 (x v,y v) 存
在如下对应关系:
xlxr
xlxr
xlw
xlv
ww
vv
wx
vx
?
??
?
?
ybyt
ybyt
ybw
ybv
ww
vv
wy
vy
?
??
?
?
( 5-1)
( 5-2)
X wO w W x l W x r
Y w
W y b
W y t
窗口
(x w,y w)
Y u
X uO u V x l V x r
V y b
V y t
视图区
(x v,y v)
窗口与视图区的对应关系
xlxlw
xlxr
xlxr
v vwxww
vvx ??
?
?? )(
ybybw
ybyt
ybyt
v vwyww
vvy ??
?
?? )(
( 5-3)
( 5-4)
由式( 5-1)和式( 5-2)可分别解得:

xlxr
xlxr
ww
vva
?
??
ybyt
ybyt
ww
vvb
?
??
xlxl
xlxr
xlxr vw
ww
vvc ?
?
???
ybyb
ybyt
ybyt vw
ww
vvd ?
?
???

baxx wv ??
dcyy wv ??
( 5-5)
( 5-6)
5.2二维图形几何变换
5.2.1 二维图形几何变换的原理
二维图形由点或直线段组成
直线段可由其端点坐标定义
二维图形的几何变换:对点或对直线段端点的变换
? ?yxP ? ? ?yxP ????
1.平移变换( translation)
平行于 x轴的方向上的移动量
平行于 y轴的方向上的移动量
xT
yT
5.2.2几种典型的二维图形几何变换
x
xT
y
P?
P
yT
平移变换
?
?
?
??
??
y
x
Tyy
Txx
'
'
几何关系
? ? ? ? ? ?yx TTyxyx ????
矩阵形式
( 5-7)
( 5-8)
平行于 x轴的方向上的缩放量
平行于 y轴的方向上的缩放量
2.比例变换( scale)
xS
yS
指相对于原点的比例变换 y
x
相对于 原点 的比例变换
相对于 重心 的比例变换
y
x
重心
?
?
?
??
??
y
x
Syy
Sxx
'
'
几何关系
? ? ? ? ?????????
y
x
S
Syxyx
0
0
矩阵形式
( 5-10)
( 5-9)
比例变换的性质
当 时,变换前的图形与变换后的图形相似
当 时,图形将放大,并远离坐标原点
当 时,图形将缩小,并靠近坐标原点
当 时,图形将发生畸变
10 ??? yx SS
yx SS ?
1?? yx SS
yx SS ?
1?? yx SS yx SS ?
3.旋转变换( rotation)
点 P绕原点逆时针转 θ度角
(设逆时针旋转方向为正方向)
??
?
?
?
?
?
s in
c o s
ry
rx ( 5-11)
??
?
???
???
??????
??????
c o ss i ns i nc o s)s i n ('
s i ns i nc o sc o s)c o s ('
rrry
rrrx

-( 5-12)
??
?
??
??
??
??
c o ss in'
s inc o s'
yxy
yxx
将式( 5-11)代入式( 5-12)得:
( 5-13)
?
P?
P几何关系
( 5-14)? ? ? ? ?
?
??
?
?
???? ??
??
c o ss in
s inc o s yxyx矩阵形式
y
x
旋转变换
5.2.3 齐次坐标 ( homogeneous coordinates) 技术
1.齐次坐标技术的引入
平移、比例和旋转等变换的组合变换
处理形式不统一,将很难把它们级联在一起。
2.变换具有统一表示形式的优点
? 便于变换合成
? 便于硬件实现
3.齐次坐标技术的基本思想
把一个 n维空间中的几何问题转换到 n+1维空间中解决。
4.齐次坐标表示
齐次坐标表示不是唯一的
),,.,,,,( 21 ?nxxx )/,...,/,/( 21 ??? nxxx
),.,,,,( 21 nxxx
有 n个分量的向量
),,.,,,,( 21 ???? nxxx
有 n+1个分量的向量
哑元 或 标量因子
1?? 规格化的齐次坐标
5.基本几何变换的齐次坐标表示
平移变换 ? ? ? ?
?
?
?
?
?
?
?
?
?
?
???
1
010
001
11
yx TT
yxyx
? ? ? ?
?
?
?
?
?
?
?
?
?
?
???
100
00
00
11 y
x
S
S
yxyx
? ? ? ?
?
?
?
?
?
?
?
?
?
?
???
??
???
100
0c o ss in
0s inc o s
11 yxyx
比例变换
旋转变换:
6,无穷远点或无穷远区域的齐次坐标表示
时,齐次坐标 表示一个 n维的无穷远点0?? ),,.,,,,( 21 ?nxxx
逆时针为正
5.2.3常用的二维几何变换
1.对称变换 ( symmetry)(反射变换或镜像变换)
( 1)相对于 y轴对称
( 2)相对于 x轴对称
??
?
?
??
yy
xx
'
'
关系几何
? ? ? ? ? ?1
100
010
001
11 yxyxyx ??
?
?
?
?
?
?
?
?
?
? ?
???
形式矩阵
??
?
??
?
yy
xx
'
'
关系几何
? ? ? ? ? ?1
100
010
001
11 yxyxyx ??
?
?
?
?
?
?
?
?
?
?
????
形式矩阵
o
y
x
对称变换( 1)
y
x
o
对称变换( 2)
( 3)相对于原点对称(即中心对称)
( 4)相对于直线 y=x对称
??
?
??
??
yy
xx
'
'
? ? ? ? ? ?1
100
010
001
11 yxyxyx ???
?
?
?
?
?
?
?
?
?
?
?
?
???
关系几何
形式矩阵
形式矩阵
关系几何 ??
?
?
?
xy
yx
'
'
? ? ? ? ? ?1
100
001
010
11 xyyxyx ?
?
?
?
?
?
?
?
?
?
?
???
o x
y
对称变换( 3)
x
y
o
y=x
对称变换( 4)
( 5)相对于直线 y=-x对称
??
?
??
??
xy
yx
'
'
几何关系
? ? ? ? ? ?1
100
001
010
11 xyyxyx ???
?
?
?
?
?
?
?
?
?
?
?
?
???
矩阵形式
x
y
o
y=-x
对称变换( 5)
2.错切变换( shear)
( 1)沿 x 轴方向关于 y 轴错切
将图形上关于 y轴的平行线沿 x方向推成 θ角的
倾斜线,而保持 y坐标不变。
△ x
错切变换( 1)
y
x?
ayy c t gx ??? ? 有?ctga ? 令
??
? ? ?? yy ayxx ' ' 代入得
??
? ? ??? yy xxx ' '
几何关系
? ? ? ? ? ?1
100
01
001
11 yayxayxyx ??
?
?
?
?
?
?
?
?
?
?
???
矩阵形式
( 2)沿 y 轴方向关于 x 轴错切
将图形上关于 x轴的平行线沿 y方向推成 Ψ角的
倾斜线,而保持 x坐标不变。
错切变换( 2)
y
x
△ y ?
? ? ? ? ? ?1
100
010
01
11 ybxx
b
yxyx ??
?
?
?
?
?
?
?
?
?
?
???
矩阵形式
几何关系
??
? ???? yyy xx ' '
byy c t gx ??? ? 有?ctgb ? 令
??
? ? ?? yy ayxx ' ' 代入得
1.相对于任意点( x0,y0)的比例变换
对任意点比例变换的步骤:
( 1)平移变换
( 2)相对于原点的比例变换
( 3)平移变换
当( x0,y0)为图形重心的坐标时,这种变换实现的是
相对于重心的比例变换。
5.3.3 二维组合变换

?
?
?
?
?
?
?
?
?
?
??
?
1
010
001
00
1
yx
T
?
?
?
?
?
?
?
?
?
?
?
100
00
00
y
x
S
S
S
?
?
?
?
?
?
?
?
?
?
?
1
010
001
00
2
yx
T ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
100
00
00
11 2233 y
x
S
S
yxyx
? ? ? ?
?
?
?
?
?
?
?
?
?
?
??
?
1
010
001
11
00
1122
yx
yxyx
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
1
010
001
11
00
3344
yx
yxyx
任意点比例变换示意图
平移
? ? 111 yx
平移
比例
21 STTT ?
则有
? ? ? ?? ? ? ?
TyxSTTyx
yxyx
1 1
11''
112111
44
??
??
2.绕任意点( x0,y0)的旋转变换
绕任意点旋转变换的步骤:
( 1)平移变换
( 2)对图形绕原点进行旋转变换
( 3)平移变换
θ
(x2,y2)
(x3,y3) (x
0,y0)
θ
O
x
y
(x1,y1)
(x4,y4)
相对于任意点 (x0,y0)的旋转变换
? ? ? ?
?
?
?
?
?
?
?
?
?
?
??
100
0c o ss i n
0s i nc o s
11 2233 ??
??
yxyx
? ? ? ?
?
?
?
?
?
?
?
?
?
?
??
?
1
010
001
11
00
1122
yx
yxyx
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
1
010
001
11
00
3344
yx
yxyx
任意点旋转变换示意图
平移
? ? 100 yx
平移
旋转
?
?
?
?
?
?
?
?
?
?
??
?
1
010
001
00
1
yx
T
?
?
?
?
?
?
?
?
?
?
??
100
0c o ss in
0s inc o s
??
??
R
?
?
?
?
?
?
?
?
?
?
?
1
010
001
00
2
yx
T
21 RTTT ?
? ? ? ?? ? ? ?
TyxRTTyx
yxyx
1 1
11''
112111
44
??
??

则有
三维几何变换( 1/8)
三维齐次坐标
(x,y,z)点对应的齐次坐标为
标准齐次坐标 (x,y,z,1)
右手坐标系
),,,( hzyx hhh
0,,,???? hhzzhyyhxx hhh
x
y
z
三维几何变换( 2/8)
平移变换
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
0100
0010
0001
zyx
TTT
T
三维几何变换( 3/8)
放缩变换
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
000
000
000
z
y
x
s
s
s
S
三维几何变换( 4/8)
旋转变换,右手螺旋方向为正
? 绕 x轴
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0c o ss i n0
0s i nc o s0
0001
)(
??
??
?xR
y
x
y
zz’
y’
z
o
o
x轴指向纸外
三维几何变换( 5/8)
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0c o ss in
0010
0s in0c o s
)(
??
??
?yR
? 绕 y轴
z
y
z
xx’
z’
x
o
o
y轴指向纸外
三维几何变换( 6/8)
? 绕 z轴
?
?
?
?
?
?
?
?
?
?
?
? ?
?
1000
0100
00c o ss i n
00s i nc o s
)(
??
??
?zR
x
z
x
yy’
x’
y
o
o
x轴指向纸外
绕轴旋转角
三维几何变换
错切变换
z
y
x
z
y
x
z
y
x
z
y
x
z
y
x
z
y
x
三维错切变换
沿 z含 x错切 沿 z含 y错切
沿 y含 x错切 沿 y含 z错切
沿 x含 y错切 沿 x含 z错切
三维几何变换( 8/8)
三维变换的一般形式 旋转、比例,错切、对称
平移
透视投影
总体比例 ?
?
?
?
?
?
?
?
?
?
?
?
?
44434241
34333231
24232221
14131211
aaaa
aaaa
aaaa
aaaa
A