第七章 投影变换
? 内容,
– 平面几何投影,透视投影与平行投影,投影
中心(观察点、视点)、投影平面与投影线,
投影变换,投影方向,灭点与主灭点,一点
透视、两点透视与三点透视,三视图,观察
坐标系,观察平面,观察参考点,观察正向,
投影参考点,前、后裁剪面,视见体,透视
投影变换与平行投影变换,透视投影视见体
规范化与平行投影视见体规范化,三维裁剪。
三维图形的基本问题
1,在二维屏幕上如何显示三维物体?
– 显示器屏幕、绘图纸等是二维的
– 显示对象是三维的
– 解决方法 ----投影
– 三维显示设备正在研制中
2,如何表示三维物体?
– 二维形体的表示 ----直线段,折线,曲线段,多边形
区域
– 二维形体的输入 ----简单(图形显示设备与形体的
维数一致)
三维图形的基本问题
– 三维形体的表示 ----空间直线段、折线、曲线段、
多边形、曲面片
– 三维形体的输入、运算、有效性保证 ----困难
– 解决方法 ----各种用于形体表示的理论、模型、方

3,如何反映遮挡关系?
– 物体之间或物体的不同部分之间存在相互遮挡关系
– 遮挡关系是空间位置关系的重要组成部分
– 解决方法 ----消除隐藏面与隐藏线
三维图形的基本问题
? 4,如何产生真实感图形?
– 何谓真实感图形
? 逼真的
? 示意的
– 人们观察现实世界产生的真实感来源于
? 空间位置关系 ----近大远小的透视关系和遮挡关

?光线传播引起的物体表面颜色的自然分布
– 解决方法 ----建立光照明模型、开发真实感图形绘
制方法
三维图形的基本问题
三维图形的基本研究内容
1,投影
2,三维形体的表示
3,消除隐藏面与隐藏线
4,建立光照明模型、开发真实感图形绘制方法
7.1 投影变换概念及其分类
?Center of projection (COP) – center of the camera lenses
origin of the camera frame
?Direction of Projection (DOP) – viewing from infinity
Projections
?planar geometric projections
?non-planar projections
投射分类
? 定义,3D?2D图形的变换称为射影(投
射)变换
投射
平行投射
透视投射
正平行投射
斜平行投射
一点透视
二点透视
三点透视
正投射
正轴侧投射
正等侧
正二侧
正三侧
斜等侧
斜二侧
按投射中心和
投影平面距离
平面几何投影
透视投影 平行投影
平面几何投影 -平行投影
– 平行投影
?投影中心与投影平面之间的距离为无限
因此,只需给出投影方向即可
?是透视投影的极限状态
平面几何投影 -平行投影
– 根据投影线方向与投影平面的夹角,平行投
影分为两类:
?正平行投影与斜平行投影
正平行投影包括:正投影(三视图)和正
轴侧投影
三视图:三个投影面和坐标轴相互垂直。
正轴侧:投影面和坐标轴呈一定的关系。
平面几何投影 -平行投影
?三视图:正视图、侧视图和俯视图
正平行投影 -三视图
? 把三维空间的图形在三个方向上所看到的棱线
分别投影到三个坐标面上。再经过适当变换放
置 到同一平面上。
z
y
x
a2
c2b2a1
b1
c1
正平行投影 -三视图
? 变换矩阵 (其中 (a,b)为 u,v坐标下的值 )
正视图
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
10
0010
0000
0001
11
zx
tbta
zyxwvu
u
z
y
y
x
o
z
y
y
x o
o’
v
tz tz
tx
tx
ty
ty
(a,b)
正平行投影 -三视图
? 俯视图:
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
10
0000
0010
0001
11
yx
tbta
zyxwvu
u
z
y
y
x
o
z
y
y
x o
o’
v
tz tz
tx
tx
ty
ty
(a,b)
正平行投影 -三视图
? 侧视图
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
10
0010
0001
0000
11
zy tbta
zyxwvu
u
z
y
y
x
o
z
y
y
x o
o’
v
tz tz
tx
tx
ty
ty
(a,b)
正轴测投影
? 当投影方向不取坐标轴方向,投影平面不垂直
于坐标轴时,产生的正投影称为正轴测投影。
? 正轴测投影分类:
? 正等测:投影平面与三个坐标轴的交点到坐标
原点的距离都相等。 沿三个轴线具有相同的变
形系数。
正轴测投影
? 正二测:投影平面与两个坐标轴的交点到坐标
原点的距离都相等。 沿两个轴线具有相同的变
形系数。
正轴测投影
? 正三测:投影平面与三个坐标轴的交点到坐标
原点的距离都不相等。 沿三个轴线具有各不相
同的变形系数。
正轴测投影
正轴测投影的形成过程如下:
– 将空间一立体绕 绕 y轴旋转 θ y角
– 然后再绕 x轴旋转 θ x
– 最后向 z=0平面做正投影
由于这种投影的投影平面不与立体的轴线垂直,
同时可见到物体的多个面,因而可产生立体
效果。经过正轴测投影变换后,物体线间的
平行性不变,但角度有变化。
正轴测投影
正轴测投影变换矩阵的一般形式:
? ? ? ?
??
?
?
?
?
?
??
?
?
?
?
?
??
?
?
?
?
?
??
?
?
?
?
?
?
??
?
?
?
?
?
??
?
?
?
?
? ?
??
1000
0000
0010
0001
1000
0c o ss i n0
0s i nc o s0
0001
1000
0c o s0s i n
0010
0s i n0c o s
xx
xx
yy
yy
zxy TRRT ??
??
??
??
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
00c o ss i ns i n
00c o s0
00s i ns i nc o s
yxy
x
yxy
T
???
?
???
正二测和正等测
下面主要讨论正二测和正等测的投影变换矩阵,
即确定变换矩阵中的 θ x角和 θ y角。
如何度量沿三个轴线方向的变形系数呢?
? ? ? ?
? ? ? ?
? ? ? ?10c o ss i ns i n1100
10c o s01010
10s i ns i nc o s1001
yxy
x
yxy
???
?
???
???? ??
??? ??
??? ??
正轴侧投影
正轴侧投影
正轴侧投影
正二测和正等测
∴ 正二侧投影需满足:
假定 Z轴上的单位矢量经变换后长度变为
1/2;即取 Z轴的变形系数恒为 1/2:
可得,θ x=20。 42’,θ y =19。 28’ 。
变换矩阵为
xxyy ???? 2222 c o ss i ns i nc o s ??
4/1s i nc o ss i n 222 ?? xyy ???
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0000
0327.0935.0133.0
0378.00926.0
正二测和正等测
正等侧投影需满足:
求得:
正等测图的变换矩阵为
xyxy ???? 2222 c o sc o ss i ns i n ??
xxyy ???? 2222 c o ss i ns i nc o s ??
???? 4535 yx ??
0 707 0 0 408 0
0 707 0 0 408 0
0 0 0 816 0
0 0 0 1
.,
.,
.
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
斜平行投影
投影线与投影平面不垂直
? 斜等测投影
– 投影平面与一坐标轴垂直
– 投影线与投影平面成 45° 角
与投影平面垂直的线投影后长度不变
? 斜二测投影
– 投影平面与一坐标轴垂直
– 投影线与该轴夹角成 arcctg(1/2)角
该轴轴向变形系数为 ?。 即与投影平面垂
直的线投影后长度变为原来的一半 。
斜平行投影
? 斜等测投影和斜二测投影
斜平行投影求法
? 1,已知投影方向矢量为 ( xp,yp,zp)
? 设形体被投影到 XOY平面上
? 形体上的一点 (x,y,z)在 xoy平面上投影后
→ (xs,ys)
? ∵ 投影方向矢量为 (xp,yp,zp)
? ∴ 投影线的参数方程为:
?
?
?
?
?
???
???
???
tzzz
tyyy
txxx
ps
ps
ps
y
z
x
(xs,ys)
(x,y,z)
(xp,yp,zp )
斜平行投影求法
? 因为
? 所以
?
若令
?
? ?
p
i
ssss
z
zt
zZzyx
???
??? 00 的平面上在?
?
?
?
?
?
?
?
???
???
i
p
p
s
i
p
p
s
z
z
y
yy
z
z
x
xx
p
p
yp
p
p
xp z
y
S
z
x
S ??
y
z
x
(xs,ys)
(x,y,z)
(xp,yp,zp )
斜平行投影求法
? 则矩阵式为:
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
1000
01
0010
0001
11
ypxp
sss
SS
zyxzyx
斜平行投影求法
? 2,设 ( xe,ye,ze) 为任一点, ( xs,ys) 为
( xe,ye,ze) 在 XcOcYc平面上的投影
? 设立方体上一点 P(0,0,1)在 XcOcYc平面上
的投影 P' (lcosα,lsinα,0),投影方向为
PP',PP'与投影面的夹角为 β,α 为投影
与 x轴的夹角,则投影方向矢量为
(lcosα,lsinα,-1)
zc α
yc
xc
P’
P(0,0,1)
β l
斜平行投影求法
? 现考虑任一点 ( xe,ye,ze) 在 XcOcYc平面上
的投影 ( xs,ys)
? ∵ 投影方向与投影线 PP’ 平行
? 所以
0s i nc o s1 ???????? ssesese zl yyl xxzz ???
?
?
?
???
???
?
?
s i n
c o s
lzyy
lzxx
ees
ees
zc α
yc
xc
P’
P(0,0,1)
β l
斜平行投影求法
? 矩阵形式为:
? 斜等侧中,l=1,β=45?
? 斜二侧中,l=1/2,β=arctgα=63.4?
? 正平行投影,l=0,β=90?
? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
01s i nc o s
0010
0001
11
?? ll
zyxzyx eeesss
zc α
yc
xc
P’
P(0,0,1)
β l
透视的基本知识
? 透视投影是一种中心投影法, 在日常生活中,
我们观察外界的景物时, 常会看到一些明显的
透视现象 。
? 如:我们站在笔直的大街上, 向远处看去, 会
感到街上具有相同高度的路灯柱子, 显得近处
的高, 远处的矮, 越远越矮 。 这些路灯柱子,
即使它们之间的距离相等, 但是视觉产生的效
果则是近处的间隔显得大, 远处的间隔显得小,
越远越密 。 观察道路的宽度, 也会感到越远越
窄, 最后汇聚于一点 。 这些现象, 称之为透视
现象 。
? 产生透视的原因, 可用下图来说明:
透视的基本知识
? 图中, AA',BB',CC'为一组高度和间隔都相等, 排成
一条直线的电线杆, 从视点 E去看, 发现
? ∠ AEA?>∠ BEB?>∠ CEC?
? 若在视点 E与物体间设置一个透明的画面 P,让 P通过
AA',则在画面上看到的各电线杆的投影 aa'>bb'>cc'
? aa'即 EA,EA'与画面 P的交点的连线 ;
? bb'即为 EB,EB'与画面 P的交点的连线 。
? cc'即为 EC,EC'与画面 P的交点的连线 。
? ∴ 近大远小
透视的基本知识
? 若连 a,b,c及 a',b',c'各点, 它们的连线汇聚于
一点 。
? 然而, 实际上, A,B,C与 A?,B?,C?的连线是两
条互相平行的直线, 这说明 空间不平行于画面
(投影面 ) 的一切平行线的透视投影, 即 a,b,c与
a',b',c'的连线, 必交于一点, 这点我们称之
为灭点 。
平面几何投影 -透视投影
– 透视投影
?投影中心与投影平面之间的距离为有限
?灭点:不平行于投影平面的平行线,经过透视投
影之后收敛于一点,称为灭点,
?主灭点,平行于坐标轴的平行线产生的灭点。
– 一点透视
– 两点透视
– 三点透视
?特点:产生近大远小的视觉效果,由它产生的图
形深度感强,看起来更加真实。
透视投影
? 主灭点数是和投影平面切割坐标轴的数量相对
应的,即由坐标轴与投影平面交点的数量来决
定的。 如投影平面仅切割 z轴,则 z轴是投影
平面的法线,因而只在 z轴上有一个灭点,平
行于 x轴或 y轴的直线也平行于投影平面,因而
没有灭点。 y
x
zo
一点透视(平行透视)
? 人眼从正面去观察一个立方体, 当 z轴与
投影平面垂直时, 另两根轴 ox,oy轴平行
于投影平面 。 这时的立方体透视图只有
一个灭点, 即与画面垂直的那组平行线
的透视投影交于一点 。
二点透视(成角透视)
? 人眼观看的立方体是绕 y轴旋转一个角度
之后, 再进行透视投影 。 三坐标轴中 oy
轴与投影平面平行, 而其它两轴与画面
倾斜, 这时除平行于 oy轴的那组平行线
外, 其它两组平行线的透视投影分别在
投影平面的左右两侧, 作出的立方体透
视图产生两个灭点 。
三点透视(斜透视)
? 此时, 投影平面与三坐标轴均不平行 。
? 这时的三组平行线均产生灭点 。
透视举例
一点透视投影的变换矩阵
? 1) 一点透视
? 设 z轴上有一观察点 ( 即视点 ) V(0,0,h)
? 从 V点出发将物体上的点 P(x,y,z)投影到
XOY平面上得到 P' (x',y',0)
? 由相似三角形可知:
h
zh
y
y
x
x ???
''
一点透视投影的变换矩阵
? 令,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0'
1
'
1
'
z
h
z
y
y
h
z
x
x
HzZHyYHxX
h
zH '''1 ?????
一点透视投影的变换矩阵
? 这是变换矩阵为
? 的齐次坐标变换
? 它可以看作是先作变换
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
1
000
0010
0001
h
M rz
? ? ? ? rzMzyxZYX 11 ?
透视变换?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
1
100
0010
0001
h
M
r
一点透视投影的变换矩阵
? 再做变换
? 的合成 。
平面的正投影变换向 0
1000
0000
0010
0001
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ZM
z
一点透视投影的变换矩阵
? 在透视变换 Mr下有:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
h
z
z
z
h
z
y
y
h
z
x
x
1
'
1
'
1
'
一点透视投影的变换矩阵
? 当 z→ ?时, x?→ 0,y?→ 0,z?→ -h
? ∴ (0,0,-h)为该透视的一个灭点 。
? 同样, 视点在 (h,0,0)的透视变换, 灭点在
(-h,0,0)
? 变换矩阵为
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0100
0010
1
001
h
M
rx
一点透视投影的变换矩阵
? 视点在 (0,h,,0)的透视变换, 灭点在 (0,-h,0)
? 变换矩阵为
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0100
1
010
0001
hM
ry
均称为一点透视变换。、,rzryrx MMM
一点透视投影的变换矩阵
? 在变换矩阵中, 第四列的 p,q,r起透视变
换作用
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
100
010
001
r
q
p
M
一点透视投影的变换矩阵
当 p,q,r中有一个不为 0时的变换。假定
q!=0,p=r=0.
对空间上任一点 (x,y,z)进行透视变换结果如
下:
对该结果进行规范化处理后,便得:
? ? ? ?1qy zy
1 0 0 0
0 1 0 0
q 0 1 0
0 0 0 1
1 zy ??
?
?
?
?
?
?
?
?
?
?
?
?
xx
?????? ??? 1 1qy z 1qy y 1qy x
一点透视变换的几何意义
– 当 y=0时:
x’ = x
y’ = 0
z’ = z
即处于 y=0平面上的点,经过透视变换后没有变化。
– 当 y=∞ 时
x’ = 0
y’ = 1/q
z’ = 0
即当 y->∞ 所有点的变换结果都集中到 Y轴的 1/q处,
也即所有平行于 Y轴的直线,变换后都将沿伸相交
于该点。该点即为灭点。
二点透视投影的变换矩阵
? 2 ) 二点透视
? 在变换矩阵中, 第四列的 p,q,r起透视变换作用
当 p,q,r中有两个不为 0时的透视变换称为二
点透视变换。假定 p!=0,r!=0,q=0;
将空间上一点 (x,y,z)进行变换,可得如
下结果:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
100
010
001
r
q
p
M
二点透视投影的变换矩阵
由上式可看出:
当 x->∞ 时,在 X轴上 1/p处有一个灭点;
当 z->∞ 时,在 Z轴上 1/r处有一个灭点;
? ? ? ?
?
?
?
?
?
???
???
???
???
?
?
?
?
?
?
?
?
?
?
?
?
)1/('
)1/('
)1/('
1rzpx zy x
1 0 0 0
r 1 0 0
0 0 1 0
p 0 0 1
1 zy x
rzpxzz
rzpxyy
rzpxxx
经齐次化处理后得:
三点透视投影的变换矩阵
? 3 ) 三点透视
? 类似, 若 p,q,r都不为 0,则可得到有三个
灭点的三点透视 。
? ? ? ?
?
?
?
?
?
????
????
????
????
?
?
?
?
?
?
?
?
?
?
?
?
)1/('
)1/('
)1/('
1rzpx zy x
1 0 0 0
r 1 0 0
q 0 1 0
p 0 0 1
1 zy x
rzqypxzz
rzqypxyy
rzqypxxx
qy
经齐次化处理后得:
三点透视投影的变换矩阵
由上式可看出:
当 x->∞ 时,在 X轴上 1/p处有一个灭点;
当 y->∞ 时,在 Y轴上 1/q处有一个灭点 ;
当 z->∞ 时,在 Z轴上 1/r处有一个灭点;
透视投影的技巧
– 一点透视图的生成
在生成一点透视图时,为了避免将物体安
置在坐标系原点,而产生下图所示的透视效
果,通常在透视变换前,先将立体作一平移
变换。
透视投影的技巧
其变换过程如下,
1)先作平移变换;
2)再作透视变换;
3)最后将结果投影到投影面。
由于往 XOZ平面上投影,故一点透视变换的
灭点选在 Y轴上。以下是其变换公式。
透视投影的技巧
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1qdy dz 0dx
0 1 0 0
q 0 0 0
0 0 0 1
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1
1 0 0 0
0 1 0 0
q 0 1 0
0 0 0 1
1 dzdy dx
0 1 0 0
0 0 1 0
0 0 0 1
T
透视投影的技巧
– 二点透视投影图的生成
当立体经透视变换后,若直接投影到 V面
上,可能其立体效果并不理想,所以,在透
视变换后,对变换结果绕 Z轴旋转后,以使
物体轴线不与投影面垂直,再向 V面上投影
其效果会更好。
变换过程如下:
1)先对立体进行二点透视变换;
2)再把变换结果绕 Z轴旋转一角度;
3)最后将上述变换结果投影到投影面上。
透视投影的技巧
– 三点透视投影图生成
与二点透视投影图生成变换理由一样,在
透视变换后,先对变换结果作旋转变换,以
保证透视投影面与物体上的三个坐标轴均不
平行,从而获得立体效果更好的透视投影图。
变换过程如下:
1)首先对物体作三点透视变换;
2)将透视变换结果绕 Z轴旋转一角度 α
3)再绕 X轴旋转一 β 角;
4)将上述结果投影到投影面。
三维图形的显示流程图
? 显示流程图
– 观察变换:从世界坐标系到观察坐标系的变

三维图形的显示流程图
? 何时裁剪
– 投影之前裁剪 ----三维裁剪
?优点
– 只对可见的物体进行投影变换
?缺点
– 三维裁剪相对复杂
– 投影之后裁剪 ----二维裁剪
?优点
– 二维裁剪相对容易
?缺点
– 需要对所有的物体进行投影变换
三维图形的显示流程图
– 采用二维裁剪的三维图形显示流程图
– 在投影之前裁剪的理由
?三维物体的表面通常被离散表示成多边形或折线,
而对这类简单图元, 三维裁剪同样比较简单 。
?三维图形在显示过程中需要被消隐,做这个工作
要有图形的深度信息,所以必须在投影之前完
成 。 消隐很费时,如果在此之前裁剪(或部分
裁剪)掉不可见的图形,可使
需要消隐的图形减至最小。
End
Examples
7.2 Orthographic Projections(正投射 )
? 平行投射的的投
射方向平行,并
且无投射中心
(或投射中心在
无穷远点)
– 正平行投射
– 斜平行投射
? 正平行投射:投
射方向垂直于投
射平面,常用的
是三视图。
? 主视图
? 俯试图
? 侧视图
三视图
? 3D图形(或形体)在如下三个平面上的
正投射图形
– X=0平面
– Y=0平面
– Z=0平面
– 然后把得到的图形全部画到 Z=0的平面上,
最终的 2D图形称为 3D图形的三视图。
坐标系统与条件
3D图形上的点
(x,y,z,1)
投影点( 2D)
(u,v,w,1)
Z=0平面上的投影
主视图,y=0平面上的投影
俯视图,z=0平面上的投影
俯视图,x=0平面上的投影
7.3 斜平行投影:坐标系统与条件
视 点( 0,0,x )
3D图形上的点
(x,y,z,1)
投影点( 2D)
(u,v,w,1)
7.4 透视投影
7.5 投影空间
? 二维窗口
? 三维投影窗口 —投影空间(观察坐标系统)
– 平行投影空间
– 透视投影空间
? 图形输出过程
7.6 用户坐标系统到观察坐标
系统的变换
? 变换矩阵
? 变换矩阵的两种求法及矩阵
– 单位矢量法
– 向量代数法
7.7 规格化裁剪空间及矩阵
? 问题与解决
? 规格化方法
– 平行投影空间的规格化
– 透视投影空间的规格化
? 规格化图象空间
7.8 三维线段裁剪