浙江大学计算机学院 计算机图形学 1
第七章 投影三维图形的基本问题平面几何投影投影变换三维图形的显示流程图浙江大学计算机学院 计算机图形学 2
三维图形的基本问题
1,在二维屏幕上如何显示三维物体?
– 显示器屏幕、绘图纸等是二维的
– 显示对象是三维的
– 解决方法 ----投影
– 三维显示设备正在研制中
2,如何表示三维物体?
– 二维形体的表示 ----直线段,折线,曲线段,多边形区域
– 二维形体的输入 ----简单(图形显示设备与形体的维数一致)
三维图形的基本问题
– 三维形体的表示 ----空间直线段、折线、曲线段、
多边形、曲面片
– 三维形体的输入、运算、有效性保证 ----困难
– 解决方法 ----各种用于形体表示的理论、模型、方法
3,如何反映遮挡关系?
– 物体之间或物体的不同部分之间存在相互遮挡关系
– 遮挡关系是空间位置关系的重要组成部分
– 解决方法 ----消除隐藏面与隐藏线三维图形的基本问题
4,如何产生真实感图形?
– 何谓真实感图形
逼真的
示意的
– 人们观察现实世界产生的真实感来源于
空间位置关系 ----近大远小的透视关系和遮挡关系
光线传播引起的物体表面颜色的自然分布
– 解决方法 ----建立光照明模型、开发真实感图形绘制方法三维图形的基本问题三维图形的基本研究内容
1,投影
2,三维形体的表示
3,消除隐藏面与隐藏线
4,建立光照明模型、开发真实感图形绘制方法浙江大学计算机学院 计算机图形学 6
投影变换
投影变换,把三维物体变为二维图形表示的过程称为投影变换。
平面几何投影
– 投影分类 投影中心与投影平面之间的距离为无限投影中心与投影平面之间的距离为有限根据投影方向与投影平面的夹角根据投影平面与坐标轴的夹角平面几何投影透视投影 平行投影平面几何投影 -平行投影
– 平行投影
投影中心与投影平面之间的距离为无限因此,只需给出投影方向即可
是透视投影的极限状态平面几何投影 -平行投影
– 根据投影线方向与投影平面的夹角,平行投影分为两类:
正平行投影与斜平行投影正平行投影包括:正投影(三视图)和正轴侧投影三视图:三个投影面和坐标轴相互垂直。
正轴侧:投影面和坐标轴呈一定的关系。
平面几何投影 -平行投影
三视图:正视图、侧视图和俯视图浙江大学计算机学院 计算机图形学 12
正平行投影 -三视图
把三维空间的图形在三个方向上所看到的棱线分别投影到三个坐标面上。再经过适当变换放置 到同一平面上。
z
y
x
a2
c2b2a1
b1
c1
浙江大学计算机学院 计算机图形学 13
正平行投影 -三视图
变换矩阵 (其中 (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)
浙江大学计算机学院 计算机图形学 14
正平行投影 -三视图
俯视图:


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)
浙江大学计算机学院 计算机图形学 15
正平行投影 -三视图
侧视图


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)
浙江大学计算机学院 计算机图形学 16
正轴测投影
当投影方向不取坐标轴方向,投影平面不垂直于坐标轴时,产生的正投影称为正轴测投影。
正轴测投影分类:
正等测:投影平面与三个坐标轴的交点到坐标原点的距离都相等。 沿三个轴线具有相同的变形系数。
浙江大学计算机学院 计算机图形学 17
正轴测投影
正二测:投影平面与两个坐标轴的交点到坐标原点的距离都相等。 沿两个轴线具有相同的变形系数。
浙江大学计算机学院 计算机图形学 18
正轴测投影
正三测:投影平面与三个坐标轴的交点到坐标原点的距离都不相等。 沿三个轴线具有各不相同的变形系数。
浙江大学计算机学院 计算机图形学 19
正轴测投影正轴测投影的形成过程如下:
– 将空间一立体绕 绕 y轴旋转 θ y角
– 然后再绕 x轴旋转 θ x
– 最后向 z=0平面做正投影由于这种投影的投影平面不与立体的轴线垂直,
同时可见到物体的多个面,因而可产生立体效果。经过正轴测投影变换后,物体线间的平行性不变,但角度有变化。
浙江大学计算机学院 计算机图形学 20
正轴测投影正轴测投影变换矩阵的一般形式:









1000
0000
0010
0001
1000
0c o ss in0
0s inc o s0
0001
1000
0c o s0s in
0010
0s in0c o s
xx
xx
yy
yy
zxy TRRT




1000
00c o ss ins in
00c o s0
00s ins inc o s
yxy
x
yxy
T


浙江大学计算机学院 计算机图形学 21
正二测和正等测下面主要讨论正二测和正等测的投影变换矩阵,
即确定变换矩阵中的 θ x角和 θ y角。
如何度量沿三个轴线方向的变形系数呢?


10c o ss i ns i n1100
10c o s01010
10s i ns i nc o s1001
yxy
x
yxy





正轴侧投影正轴侧投影正轴侧投影浙江大学计算机学院 计算机图形学 22
正二测和正等测
∴ 正二侧投影需满足:
假定 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
浙江大学计算机学院 计算机图形学 23
正二测和正等测正等侧投影需满足:
求得:
正等测图的变换矩阵为
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
.,
.,
.

浙江大学计算机学院 计算机图形学 24
斜平行投影投影线与投影平面不垂直
斜等测投影
– 投影平面与一坐标轴垂直
– 投影线与投影平面成 45° 角与投影平面垂直的线投影后长度不变
斜二测投影
– 投影平面与一坐标轴垂直
– 投影线与该轴夹角成 arcctg(1/2)角该轴轴向变形系数为?。 即与投影平面垂直的线投影后长度变为原来的一半 。
浙江大学计算机学院 计算机图形学 25
斜平行投影
斜等测投影和斜二测投影浙江大学计算机学院 计算机图形学 26
斜平行投影求法
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 )
浙江大学计算机学院 计算机图形学 27
斜平行投影求法
因为
所以
若令

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 )
浙江大学计算机学院 计算机图形学 28
斜平行投影求法
则矩阵式为:


1000
01
0010
0001
11
ypxp
sss
SS
zyxzyx
浙江大学计算机学院 计算机图形学 29
斜平行投影求法
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
浙江大学计算机学院 计算机图形学 30
斜平行投影求法
现考虑任一点 ( xe,ye,ze) 在 XcOcYc平面上的投影 ( xs,ys)
∵ 投影方向与投影线 PP’ 平行
所以
0s inc 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
浙江大学计算机学院 计算机图形学 31
斜平行投影求法
矩阵形式为:
斜等侧中,l=1,β=45?
斜二侧中,l=1/2,β=arctgα=63.4?
正平行投影,l=0,β=90?

1000
01s inc o s
0010
0001
11
ll
zyxzyx eeesss
zc α
yc
xc
P’
P(0,0,1)
β l
浙江大学计算机学院 计算机图形学 32
透视的基本知识
透视投影是一种中心投影法,在日常生活中,
我们观察外界的景物时,常会看到一些明显的透视现象 。
如:我们站在笔直的大街上,向远处看去,会感到街上具有相同高度的路灯柱子,显得近处的高,远处的矮,越远越矮 。 这些路灯柱子,
即使它们之间的距离相等,但是视觉产生的效果则是近处的间隔显得大,远处的间隔显得小,
越远越密 。 观察道路的宽度,也会感到越远越窄,最后汇聚于一点 。 这些现象,称之为透视现象 。
产生透视的原因,可用下图来说明:
浙江大学计算机学院 计算机图形学 33
透视的基本知识
图中,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的交点的连线 。
∴ 近大远小浙江大学计算机学院 计算机图形学 34
透视的基本知识
若连 a,b,c及 a',b',c'各点,它们的连线汇聚于一点 。
然而,实际上,A,B,C与 A?,B?,C?的连线是两条互相平行的直线,这说明 空间不平行于画面
(投影面 ) 的一切平行线的透视投影,即 a,b,c与
a',b',c'的连线,必交于一点,这点我们称之为灭点 。
浙江大学计算机学院 计算机图形学 35
平面几何投影 -透视投影
– 透视投影
投影中心与投影平面之间的距离为有限
灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点,
主灭点,平行于坐标轴的平行线产生的灭点。
– 一点透视
– 两点透视
– 三点透视
特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。
浙江大学计算机学院 计算机图形学 36
透视投影
主灭点数是和投影平面切割坐标轴的数量相对应的,即由坐标轴与投影平面交点的数量来决定的。 如投影平面仅切割 z轴,则 z轴是投影平面的法线,因而只在 z轴上有一个灭点,平行于 x轴或 y轴的直线也平行于投影平面,因而没有灭点。 y
x
zo
浙江大学计算机学院 计算机图形学 37
一点透视(平行透视)
人眼从正面去观察一个立方体,当 z轴与投影平面垂直时,另两根轴 ox,oy轴平行于投影平面 。 这时的立方体透视图只有一个灭点,即与画面垂直的那组平行线的透视投影交于一点 。
浙江大学计算机学院 计算机图形学 38
二点透视(成角透视)
人眼观看的立方体是绕 y轴旋转一个角度之后,再进行透视投影 。 三坐标轴中 oy
轴与投影平面平行,而其它两轴与画面倾斜,这时除平行于 oy轴的那组平行线外,其它两组平行线的透视投影分别在投影平面的左右两侧,作出的立方体透视图产生两个灭点 。
浙江大学计算机学院 计算机图形学 39
三点透视(斜透视)
此时,投影平面与三坐标轴均不平行 。
这时的三组平行线均产生灭点 。
浙江大学计算机学院 计算机图形学 40
透视举例浙江大学计算机学院 计算机图形学 41
一点透视投影的变换矩阵
1) 一点透视
设 z轴上有一观察点 ( 即视点 ) V(0,0,h)
从 V点出发将物体上的点 P(x,y,z)投影到
XOY平面上得到 P' (x',y',0)
由相似三角形可知:
h
zh
y
y
x
x
''
浙江大学计算机学院 计算机图形学 42
一点透视投影的变换矩阵
令,
0'
1
'
1
'
z
h
z
y
y
h
z
x
x
HzZHyYHxX
h
zH '''1
浙江大学计算机学院 计算机图形学 43
一点透视投影的变换矩阵
这是变换矩阵为
的齐次坐标变换
它可以看作是先作变换
1000
1
000
0010
0001
h
M rz
rzMzyxZYX 11?
透视变换?
1000
1
100
0010
0001
h
M
r
浙江大学计算机学院 计算机图形学 44
一点透视投影的变换矩阵
再做变换
的合成 。
平面的正投影变换向 0
1000
0000
0010
0001

ZM
z
浙江大学计算机学院 计算机图形学 45
一点透视投影的变换矩阵
在透视变换 Mr下有:
h
z
z
z
h
z
y
y
h
z
x
x
1
'
1
'
1
'
浙江大学计算机学院 计算机图形学 46
一点透视投影的变换矩阵
当 z→?时,x?→ 0,y? → 0,z?→ -h
∴ (0,0,-h)为该透视的一个灭点 。
同样,视点在 (h,0,0)的透视变换,灭点在
(-h,0,0)
变换矩阵为
1000
0100
0010
1
001
h
M
rx
浙江大学计算机学院 计算机图形学 47
一点透视投影的变换矩阵
视点在 (0,h,,0)的透视变换,灭点在 (0,-h,0)
变换矩阵为
1000
0100
1
010
0001
hM
ry
均称为一点透视变换。、,rzryrx MMM
浙江大学计算机学院 计算机图形学 48
一点透视投影的变换矩阵
在变换矩阵中,第四列的 p,q,r起透视变换作用
1000
100
010
001
r
q
p
M
浙江大学计算机学院 计算机图形学 49
一点透视投影的变换矩阵当 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
浙江大学计算机学院 计算机图形学 50
一点透视变换的几何意义
– 当 y=0时:
x’ = x
y’ = 0
z’ = z
即处于 y=0平面上的点,经过透视变换后没有变化。
– 当 y=∞ 时
x’ = 0
y’ = 1/q
z’ = 0
即当 y->∞ 所有点的变换结果都集中到 Y轴的 1/q处,
也即所有平行于 Y轴的直线,变换后都将沿伸相交于该点。该点即为灭点。
浙江大学计算机学院 计算机图形学 51
二点透视投影的变换矩阵
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
浙江大学计算机学院 计算机图形学 52
二点透视投影的变换矩阵由上式可看出:
当 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
经齐次化处理后得:
浙江大学计算机学院 计算机图形学 53
三点透视投影的变换矩阵
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
经齐次化处理后得:
浙江大学计算机学院 计算机图形学 54
三点透视投影的变换矩阵由上式可看出:
当 x->∞ 时,在 X轴上 1/p处有一个灭点;
当 y->∞ 时,在 Y轴上 1/q处有一个灭点 ;
当 z->∞ 时,在 Z轴上 1/r处有一个灭点;
浙江大学计算机学院 计算机图形学 55
透视投影的技巧
– 一点透视图的生成在生成一点透视图时,为了避免将物体安置在坐标系原点,而产生下图所示的透视效果,通常在透视变换前,先将立体作一平移变换。
浙江大学计算机学院 计算机图形学 56
透视投影的技巧其变换过程如下,
1)先作平移变换;
2)再作透视变换;
3)最后将结果投影到投影面。
由于往 XOZ平面上投影,故一点透视变换的灭点选在 Y轴上。以下是其变换公式。
浙江大学计算机学院 计算机图形学 57
透视投影的技巧
1qdy dz 0d x
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 dzd y d x
0 1 0 0
0 0 1 0
0 0 0 1
T
浙江大学计算机学院 计算机图形学 58
透视投影的技巧
– 二点透视投影图的生成当立体经透视变换后,若直接投影到 V面上,可能其立体效果并不理想,所以,在透视变换后,对变换结果绕 Z轴旋转后,以使物体轴线不与投影面垂直,再向 V面上投影其效果会更好。
变换过程如下:
1)先对立体进行二点透视变换;
2)再把变换结果绕 Z轴旋转一角度;
3)最后将上述变换结果投影到投影面上。
浙江大学计算机学院 计算机图形学 59
透视投影的技巧
– 三点透视投影图生成与二点透视投影图生成变换理由一样,在透视变换后,先对变换结果作旋转变换,以保证透视投影面与物体上的三个坐标轴均不平行,从而获得立体效果更好的透视投影图。
变换过程如下:
1)首先对物体作三点透视变换;
2)将透视变换结果绕 Z轴旋转一角度 α
3)再绕 X轴旋转一 β 角;
4)将上述结果投影到投影面。
三维图形的显示流程图
显示流程图
– 观察变换:从世界坐标系到观察坐标系的变换浙江大学计算机学院 计算机图形学 61
三维图形的显示流程图
何时裁剪
– 投影之前裁剪 ----三维裁剪
优点
– 只对可见的物体进行投影变换
缺点
– 三维裁剪相对复杂
– 投影之后裁剪 ----二维裁剪
优点
– 二维裁剪相对容易
缺点
– 需要对所有的物体进行投影变换浙江大学计算机学院 计算机图形学 62
三维图形的显示流程图
– 采用二维裁剪的三维图形显示流程图
– 在投影之前裁剪的理由
三维物体的表面通常被离散表示成多边形或折线,
而对这类简单图元,三维裁剪同样比较简单 。
三维图形在显示过程中需要被消隐,做这个工作要有图形的深度信息,所以必须在投影之前完成 。 消隐很费时,如果在此之前裁剪(或部分裁剪)掉不可见的图形,可使需要消隐的图形减至最小。