变换矩阵为 - 计算机辅助设计技术基础

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
xA , yA , zA ,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