变换矩阵为 - 计算机辅助设计技术基础
Download
Report
Transcript 变换矩阵为 - 计算机辅助设计技术基础
第2章 计算机图形处理技术
1
2.2.3三维图形的几何变换
一、基本变换
三维图形的几何变换与二维图形类似,其基本变换也
包括平移变换、比例变换、旋转变换、对称变换、错切变
换等,同时通过基本变换的组合可以实现复杂变换。
1、平移变换
平移变换是使立体在三维空间移动一个位置,而形状
保持不变。与二维平移变换相类似,平移变换矩阵为:
1 0
0 1
0 0
l m
0 0
0 0
1 0
n 1
其中,l,m,n分别为沿x,y,z方向上的平移量。
2
2、比例变换
比例变换使立体在三维空间中沿x、y、z坐标轴进
行放大、缩小等变换。比例变换矩阵为:
a
0
0
0
0 0 0
e 0 0
0 j 0
0 0 1
其中,a,e,j分别为沿x,y,z方向的比例因子。
它们的作用是使物体产生比例变换,当各变比相同时,
称为全比例变换。
3
3、旋转变换
三维图形旋转变换是指空间物体绕某坐标轴旋转,三维
变换可以看成是由三个二维旋转变换组合而成,并分别取x,
y,z为旋转轴。我们规定在右手坐标系中,物体旋转的正
方向为右手螺旋方向,即从该轴向原点看,是逆时针方向。
如图所示。
z
z
z
γ
x
α
x
o
o
o
β
y
y
y
4
x
(1)绕x轴正向旋转 角
变换矩阵为
0
1
0 cos
T
0 sin
0
0
0
0
0
1
0
sin
cos
0
(2)绕y轴正向旋转 角
变换矩阵为
cos
0
T
sin
0
0 sin
1
0
0 cos
0
0
0
0
0
1
5
(3)绕z轴正向旋转
变换矩阵为
角
cos
sin
T
0
0
sin
cos
0
0 0
0 0
1 0
0 1
0
立体分别绕x、y、z轴旋转90的变换结果如图所示。
z
z
z
z
o
x
o
x
x
y
(a)原图
x
y
o
y
y
(b)绕x轴旋转90度 (c)绕y轴旋转90度 (d)绕z轴旋转90度
6
4、对称变换
对称变换包括对坐标原点,对坐标轴和对坐标平面的
对称,下面主要介绍立体对坐标平面的对称变换。
(1)对xOy坐标平面的对称变换
变换矩阵为
1
0
T
0
0
0
0
0 1 0
0 0 1
0
1
0
0
7
(2)对xOz坐标平面的对称变换
变换矩阵为
1 0
0 1
T
0 0
0 0
0 0
0 0
1 0
0 1
(3)对yOz坐标平面的对称变换
变换矩阵为
1
0
T
0
0
0 0 0
1 0 0
0 1 0
0 0 1
8
5、错切变换
与二维空间的错切变换功能相似,三维空间的错切变
换可使空间立体上某个面沿x、y、z三个方向发生错移变
形,其变换矩阵一般表示为
1 b
d 1
T
h i
0 0
c
f
1
0
0
0
0
1
根据这些元素所在的列,判断出沿哪个坐标轴发生错
切。若d、h不为0,则沿x轴方向有错切;若b、i不为0,
则沿y轴方向有错切;若c、f不为0,则沿z轴方向有错切。
我们还可以根据这些元素所在的行,判断出是关于哪个变
量的错切。比如,b、c是关于变量x的错切;d、f是关于
变量y的错切;h、i是关于变量z的错切。错切变
换按错切方向的不同,可有6种情况,即分别沿
x、y、z的正、负方向错切。(书P81表4-1) 9
二、逆变换
所谓逆变换即是与上述的基本变换过程相反的变换,
如以三维图形的逆变换为例,对平移的逆变换就是把
移回到原处
。其矩阵表达式为:
x * y * z *
x y z
x
y
z 1 x * y * z * 1
1
0
0
l
0
0
0
m n 1
0
1
0
0
0
1
对x轴旋转的逆变换是用- 代替 ,所产生的变
换为:
x
y
z 1 x * y * z * 1
0
0
1
0 cos( ) sin( )
0 sin( ) cos( )
0
0
0
0
0
0
1
其他一些几何变换的逆变换与此类似,
再此不再一一介绍。
10
三、三维图形的组合变换
与二维组合变换一样,通过三维组合变换可以实现对
三维物体的复杂变换。下面我们以绕任意轴旋转变换为例
进行说明。
假设空间任意轴P1P2由A(x1,y1,z1)及其方向数
(n1,n2,n3)定义,空间一点A(x,y,z)绕轴P1P2 旋
转 角,得到新点A*(x*,y*,z*),即
x
y z 1 T x * y * z * 1
其中,T为绕任意轴旋转的组合变换矩阵,构造矩阵T
的步骤如下:
11
(1) 将点A与旋转轴P1P2一起作平移变换,使旋转轴
P1P2过原点, P1与原点重合。
0
0
1
0
1
0
T1
0
0
1
x1 y1 z1
0
0
0
1
12
(2) 令P1P2轴首先绕x轴旋转 角,使其与xOz平面共
面,然后再绕y 轴旋转 角,使其与z轴重合。
0
0 0
1
0 cos sin 0
T2
0 sin cos 0
0
0
0
1
cos( )
0
sin( )
0
0 sin( ) 0
1
0
0
0 cos( ) 0
0
0
1
13
(3) 将A点绕z轴(即P1P2轴)旋转
cos
sin
T 3
0
0
sin
cos
0
0
角。
0 0
0 0
1 0
0 1
(4) 求步骤(2)和步骤(1)的逆变换,将旋转轴AA’
恢复为原来的位置。那么,绕任意轴P1P2旋转的组合变换
矩阵为
T=T1T2T3T2-1T1-1
14
例4:已知一立方体A(1,1,1),B(1,1,0),
C(0,1,0),D(0,1,1),试写出该立方体
1.绕y轴顺时针旋转90度的变换矩阵;
2.绕x轴逆时针旋转180度的变换矩阵;
3.变换后A点的坐标。
Y
C(0,1,0)
D(0,1,1)
B(1,1,0)
A(1,1,1)
X
Z
15
解:(1)、绕Y轴顺时针旋转900
cos
0
T1
sin
0
0 sin
1
0
0 cos
0
0
(2)、绕X轴逆时针旋转
0
1
0 cos
T2
0 sin
0
0
0 0
0 0
1
0
1 0
0
1
0
0
1
0
0
0
0
0
0
1
1800
0
sin
cos
0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0
0
0
1
16
(3)、变换后坐标
0
0
T T1T2
1
0
0
1
0
0
1
0
0
0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 0 0 1
0 0 1 0
1 0 0
0
1 0 0 0
0
0
0
1
则变换后A点的坐标为:
0 1
0
0 1 0
xA , yA , zA ,1 xA , y A , z A ,1 T 1,1,1,1
1 0
0
0
0
0
0
0
1,1,1,1
0
1
17
四、投影变换
投影就是从投影中心发出射线,经过三维物体上的每
一点后,与投影平面相交所形成的交点集合,这个集合又
称为三维物体在二维投影平面上的平面几何投影(简称投
影)。
根据投影中心与投影平面的距离,投影可分为平行投
影、透视投影。当投影中心(射线源)与投影平面的距离
为有限时,则投影为透视投影;若此距离为无穷大,则投
影为平行投影。平行投影的一个特点是投影线彼此平行,
当投影线垂直于投影平面时,为正平行投影;否则为斜平
行投影。透视投影的特点是投影线彼此成放射状照射四周
空间,正透视投影要求存在一条投影中心线垂直于投影平
面,且要求其他透视线对称于投影中心线,否则为斜透视
投影。
18
透视投影的图形与眼睛观察景物的原理及效果是一
致的,因而常用于图形的真实效果显示。由于平行投影
后直线间的平行关系不变,因而它常用于三维图形交互
和生成工程图的视图。
主视图
正投影俯视图
侧视图
正平行投影
正等轴测
平行投影
正轴测投影
正二轴测
正三轴测
投影
斜平行投影斜等测
斜二测
一点透视
透视投影正透视投影二点透视
三点透视
斜透视投影
19
本课程只介绍正投影中的三面视图及正轴
侧投影中的正等轴侧投影。
在机械设计图中经常用来表达物体形
状的三面视图即主视图、俯视图、侧视图均属
于正投影。工程制图中的正投影就是按平行正
投影绘制的,它取物体的主要坐标轴方向(长、
宽、高方向)作为投影方向。它的特点是物体
的投影能反映实形,即能直接反映物体在投影
面方位的尺寸大小。
20
(一)正投影
1、三面投影
z
W
V
y
x
H
21
(1)V面投影
它的投影线与y轴平行,投影平面为xOz平面(V面),
即y=0,它的变换矩阵为:
T pv
1
0
0
0
0 0 0
0 0 0
0 1 0
0 0 1
(2)H面投影
投影线与z轴平行,投影平面为xoy平面(H面),即
z=0,变换矩阵为:
T pH
1
0
0
0
0 0 0
1 0 0
0 0 0
0 0 1
22
(3)、W面投影
投影线与x轴平行,投影平面为yoz平面(W面),即
x=0,变换矩阵为:
T pw
0
0
0
0
0 0 0
1 0 0
0 1 0
0 0 1
2、三面投影的展开
在机械制图中,获得三面投影图后,还需将它们展
开,得出在同一平面上的三面视图。变换过程为:
23
24
V面投影图保持不变,即主视图。H面投影图绕x轴顺
时针旋转90度,可得到与xOz平面重合的视图,为了保持
与主视图有一定的距离,再沿z轴的负方向平移zp得到俯视
图。W面投影图绕z轴逆时针旋转90度,得到与xOz平面
重合的视图。为了保持与主视图之间的距离,再沿x轴负方
向平移xp距离得到左视图。
因此三面投影的展开图应该是投影变换矩阵、旋转变
换矩阵和平移变换矩阵三者的复合变换。
25
(1) 主视图。 又称前视图、正视图、正面投影等。它的
变换矩阵为
1
0
Tv
0
0
0
0
0
0
0
0
1
0
0
0
0
1
(2)俯视图。又称平面图、水平投影。
1
0
TH
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0 cos( 90 ) sin( 90 )
0 sin( 90 ) cos( 90 )
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0 zp
0 1 0
0
0 0 0 1
0
0 0
0
1
0 0 z p
0
0
0
1
26
(3)侧视图。又称左视图、侧面投影。
0
0
Tw
0
0
0
1
0
0
0
0
1
01
0
0
0
10
cos 90
sin 90
0
0 00
sin 90
cos 90
0
0
0 0 1
0 0 0
1 0 0
0 1 x p
0 0 0 0
1 0 0 1
0 1 0 0
0 0 1 x p
0
0
0 0 0
0 0 0
0 1 0
0 0 1
0
0 0 0
1 0
0 0 1 0
1 0 0 0
0 0 0 0
TH
Tv 根据上述三个视图的变换矩阵,即可根据一个三维物
TW
0 0
0
0
0
0 1 0
0 0 1 0
体的各角点的坐标值,获得它的三视图的顶点的坐标,生
0 0 z p 1
x p 0 0 1
0 0 0 1
成三视图。例如立体A,其主视图的各点坐标值为:
从上述视图的变换矩阵
x1
x
A*=ATv 2
xn
y1
y2
z1
z2
yn
zn
中发现,第二列元素均
1为0,即变换后y均为0,
1 0 0 0
这是由于变换后三个投
1 影均落在XOZ平面内。
0 0 0 0
0 0 1 0
1 0 0 0 1
27
其俯视图的各点坐标值为:
x1
x
A*=A TH 2
xn
y1
y2
yn
0
z1 1 1 0
z 2 1 0 0 1
0
0 0
z n 1 0 0 z p
0
0
0
1
其侧视图的各点坐标值为:
x1
x
A*=A TH 2
xn
y1
y2
yn
z1 1 0
z 2 1 1
0
z n 1 x p
0 0 0
0 0 0
0 1 0
0 0 1
28
(二)正轴侧投影
正轴测投影图产生的过程如下图所示:将图(a)中
所示的立方体直接向V面投影,得到(b)图;将立方体
绕z轴正转 角,再向V面投影,得到(c)图;将立方
体先绕z轴逆时针旋转 角,再绕x轴顺时针旋转 角,
然后向V面投影。得到(d)图,即立方体的正轴测投影
图。
z
V
W
x
H
•
y
(a)
(b)
(c)
(d)
29
0 0
cos sin 0 0 1 0
sin cos 0 0 0 cos sin 0
T
0
0 1 0 0 sin cos 0
0 0
0 1
0 0 1
0
1
0
0
0
0 0 0 cos
0 0 0 sin
0 1 0 0
0 0 1 0
0 sin sin
0 cos sin
0
cos
0
0
0
0
0
1
在上式中,只要给
、 不同的值,就可得到不同
的正轴测投影图。
可以证明当 45 , 35.2644 为正等轴侧投影,
代入矩阵中得到正等轴测投影变换矩阵为
0.707
0.707
T
0
0
0 0.408 0
0 0.408 0
0 0.816 0
0
0
1
30
(三)透视投影变换
透视图是采用中心投影法得到的图形,即通过投影中
心(视点),将空间立体投射到二维平面(投影面)上
产生的图形。具有真实感的效果,近大远小。
一般变换矩阵中,p、q、r为透视参数。赋给它们非
零数值将产生透视效果。
a
d
h
l
b
e
i
c
f
j
m
n
p
q
r
s
31
透视投影的视线(投影线)是从视点(观察点)出发,
视线是不平行的。不平行于投影平面的视线汇聚的一点称
为灭点,在坐标轴上的灭点叫做主灭点。主灭点数和投影
平面切割坐标轴的数量相对应。按照主灭点的个数,透视
投影可分为一点透视、二点透视和三点透视。
32
作业:
已知一四棱锥A(1,0,1),B(1,0,0),C
(0,0,0),D(0,0,1),试写出该四棱锥
1.绕y轴顺时针旋转90度的变换矩阵;
2.绕x轴逆时针旋转180度的变换矩阵;
3.变换后A、B、C、D各点的坐标。
Y
C(0,0,0)
B(1,0,0)
X
D(0,0,1)
Z
A(1,0,1)
33
解:(1)、绕y轴顺时针旋转
cos
0
T1
sin
0
0 sin
1
0
0 cos
0
0
0 0
0 0
0 1
1 0
0
1
0
0
1
0
0
0
0
0
0
1
1800
(2)、绕x轴逆时针旋转
0
1
0 cos
T2
0 sin
0
0
900
0
sin
cos
0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0
0
0
1
34
(3)、
0
0
T T1T2
1
0
x A'
xB '
x '
C
x '
D
y A'
yB'
yC '
yD'
z A ' 1 x A
z B ' 1 x B
z C ' 1 xC
z D ' 1 x D
0
1
0
0
yA
zA
yB
yC
zB
zC
yD
zD
1
0
0
0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
1
1 0
1
1 0
T
0 0
1
0 0
1
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
1 1 0
0 1
0 1 0 1 0
0 1 1 0
0
1 1 0
0
0
0
0
0
1
0 1
0 0
0 0
1 1
0 1 1
0 1 1
0 0 1
0 0 1
则变换后A、B、C、D各点的坐标分别为:
(-1,0,-1)、(0,0,-1)、(0,0,0)、(-1,0,0)
35