投影变换分类
把三维物体变为二维图形表示的过程称为投影变换。
投影变换的分类情况如下表所示:
世界坐标与观察坐标
物体在空间的表示是用世界坐标来表示,但是当人们去观察物体时,坐标系就转化为观察坐标系。这就需要在两个坐标系之间进行转换,可以通过平移、旋转实现从世界坐标到观察坐标的变换。
平移后,用单位矢量法得到旋转矩阵:
-
取
Zv
轴向为观察平面的法向
VPN,其单位矢量n=VPN/|VPN|=(nx,ny,nz)
-
取
Xv
轴向为观察方向PREF,其单位矢量u=PREF/|PREF|=(ux,uy,uz)
-
取Yv轴向的单位矢量v=u×n=(vx,vy,vz)
因此世界坐标到观察坐标到变换矩阵为:
正平行投影(三视图)
投影方向垂直于投影平面的投影称为正平行投影,我们通常所说的三视图均属于正平行投影。三视图的生成就是把
x
、
y
、
z
坐标系的形体投影到
z
=0的平面,变换到
u
、
v
、
w
坐标系。一般还需将三个视图在一个平面上画出,这时就得到下面的变换公式,其中(
a
,
b
)为
u
、
v
坐标系下的值,
tx
、
ty
、
tz
均如图中所示。
1)主视图

2)俯视图

3)侧视图


三视图
斜平行投影
投影方向不垂直于投影平面的平行投影被称为斜平行投影,现在让我们来推导斜平行投影的变换矩阵。下图中的Z=0的坐标平面为观察平面,点(
x
,
y
)为点(
x
,
y
,
z
)在观察平面上的正平行投影坐标,点(
x´
,
y
´
)为斜投影坐标。(
x
,
y
)与(
x´
,
y
´
)的距离为
L
。



透视投影
透视投影的视线(投影线)是从视点(观察点)出发,视线是不平行的。不平行于投影平面的视线汇聚的一点称为灭点,在坐标轴上的灭点叫做主灭点。主灭点数和投影平面切割坐标轴的数量相对应。按照主灭点的个数,透视投影可分为一点透视、二点透视和三点透视。

下面我们来推导简单的一点透视的投影公式。

从上图
P
点在观察平面上的投影我们可以得到描述
P
´点的参数方程:
用齐次坐标表示为:
http://jpkc.swjtu.edu.cn/C15/imagination/jisuanjituxing/Chapter6/CG_Txt_6_018.htm