当前位置:首页 >> 学科竞赛 >>

第7章三维变换


第7章 三维变换

7.1 简介 7.2 三维几何变换 7.3 三维坐标变换
1/26

7.1 简介
三维平移变换、比例变换可看成是二维情况的 直接推广。但旋转变换则不然,因为我们可选 取空间任意方向作旋转轴,因此三维变换处理 起来更为复杂。 与二维变换相似,我们也采用齐次坐标技术 来描述空间的各点坐标及其变换,这时,描 述空间三维变换的变换矩阵是4×4的形式。

由此,一系列变换可以用单个矩阵来表示。

2/26

7.2 三维几何变换
7.2.1 基本三维几何变换
1. 平移变换 若空间平移量为(tx, ty, tz),则平移变换为 z
? x? ? x ? tx ? ? y? ? y ? ty ? z? ? z ? t z ?

P’(x’,y’,z’)

? P(x,y,z) y
0 1 0 ty 0 0 1 tz 0? ? 0 ? 0? ? 1?

?1 ? 0 ? ? x ? y ? z ? 1? ? ? x y z 1? ?0 ? ?tx

x

补充说明:点的平移、 物体的平移、多面体 的平移、逆变换
3/26

2. 比例变换
(1) 相对坐标原点的比例变换 一个点P=(x,y,z)相对于坐标原点的比例变换的矩 阵可表示为
?sx ?0 ? x ? y ? z ? 1 ? ? ? x y z 1 ?? 0 ? ?0 0 sy 0 0 0 0 sz 0 0? 0? ? 0 ? 1?

z

y
x ? ? xs x , y ? ? ys y , z ? ? zs z

x

其中 s x , s y , s z 为正值。

4/26

(2) 相对于所选定的固定点的比例变换 z z (x ? f,yf,zf)
y x z (x ? f,yf,zf) (3) (x ? f,yf,zf) y
sx ? ? 0 T ?? x f , ? y f , ? z f ?S ?s x , s y , s z ?T ? x f , y f , z f ? ? ? ? 0 ? ? ?1 ? s x ? x f ? 0 sy 0 0 0 sz
f

(1)
y

(x ? f,yf,zf)
x z

(2)

y

x

x
0? ? 0 ? 0? ? 1? ?

?1 ? s ? y
y

?1 ? s z ? z f

5/26

3. 绕坐标轴的旋转变换
三维空间中的旋转变换比二维空间中的旋转变 换复杂。除了需要指定旋转角外,还需指定旋转 轴。 若以坐标系的三个坐标轴x,y,z分别作为旋转轴, 则点实际上只在垂直坐标轴的平面上作二维旋转。 此时用二维旋转公式就可以直接推出三维旋转变 换矩阵。

规定在右手坐标系中,物体旋转的正方向是右 手螺旋方向,即从该轴正半轴向原点看是逆时针 方向。
6/26

(1)绕 z 轴旋转

x ? ? x cos ? ? y sin ? y ? ? x sin ? ? y cos ? z? ? z

y x

x? y ? z? x

z
z

(2)绕 x 轴旋转

y ? ? y cos ? ? z sin ? z ? ? y sin ? ? z cos ? x? ? x

y
x

x
(3)绕 y 轴旋转
z ? ? z cos ? ? x sin ? x ? ? z sin ? ? x cos ? y? ? y

z y
7/26

? cos ? ? ? sin ? ? ? x ? y ? z ? 1? ? ? x y z 1? ? 0 ? ? 0

sin ? cos ? 0 0

0 0 1 0

0? ? 0 ? 0? ? 1?

绕 z 轴旋转

?1 ? 0 ? ? x ? y ? z ? 1? ? ? x y z 1? ?0 ? ?0

0 cos ? ? sin ? 0

0 sin ? cos ? 0 ? sin ? 0 cos ? 0

0? ? 0 ? 0? ? 1? 0? ? 0 ? 0? ? 1?

绕 x 轴旋转

? cos ? ? 0 ? ? x ? y ? z ? 1? ? ? x y z 1? ? sin ? ? ? 0

0 1 0 0

绕 y 轴旋转

8/26

旋转变换矩阵规律:
x x
y
z

对于单位矩阵

y
z

?1 ?0 ?0 ?0 ?

0 1 0 0

0 0 1 0

0? 0? 0? 1? ?

,绕哪个坐标轴

旋转,则该轴坐标的一列元素不变。按照二维图 形变换的情况,将其旋转矩阵 ? cos ? sin ? ?
? ? ? sin ? ? ? cos ? ? ?

中的元素添入相应的位置中,即

9/26

(1) 绕z轴正向旋转 ?

角,旋转后点的z坐标值不变, x、y
?

坐标的变化相当于在xoy平面内作正
? cos ? ? ? sin ? ? ? x ? y ? z ? 1? ? ? x y z 1? ? 0 ? ? 0 sin ? cos ? 0 0 0 0 1 0 0? ? 0 ? 0? ? 1?

角旋转。
x x
y
z

y

z

?1 ?0 ?0 ?0 ?

0 1 0 0

0 0 1 0

0? 0? 0? 1? ?

(2)绕x轴正向旋转 ? 角,旋转后点的x坐标值不变, Y、z坐标的变化相当于在yoz平面内作正 ? 角旋转。
?1 ? 0 ? ? x ? y ? z ? 1? ? ? x y z 1? ?0 ? ?0 0 cos ? ? sin ? 0 0 sin ? cos ? 0 0? ? 0 ? 0? ? 1?

10/26

(3) 绕y轴正向旋转 ? 角,y坐标值不变,z、x的坐标相当 于在zox平面内作正 ? 角旋转,于是
? cos ? ? 0 ? ? z ? y ? x ? 1? ? ? z y x 1? ? ? sin ? ? ? 0 ? cos ? ? 0 ? ? x ? y ? z ? 1? ? ? x y z 1? ? sin ? ? ? 0 0 1 0 0 0 1 0 0 sin ? 0 cos ? 0 ? sin ? 0 cos ? 0 0? ? 0 ? 0? ? 1? 0? ? 0 ? 0? ? 1?



这就是说,绕y轴的旋转变换的矩阵与绕x轴和z轴 变换的矩阵从表面上看在符号上有所不同。
11/26

7.2.2 组合变换
1. 物体绕平行于某一坐标轴的旋转变换。基本步骤: (1) 平移物体使旋转轴与所平行的坐标轴重合; (2) 沿着该坐标轴进行指定角度的旋转; (3) 平移物体使旋转轴移回到原位置。
y y y z

x

(d)
z x z (a) (b)
R ?? ? ? T ? R x ?? ? ? T
?1

x z

x

(c)
12/26

2. 绕任意轴旋转的变换

(1)平移物体使旋转轴通过坐标原点;
y y P2 ? P1 ? x z z (1) ? P’1 ? P’2 x

(2)旋转物体使旋转轴与某个坐标轴(如z轴)重合; (3)关于该坐标轴进行指定角度的旋转;
y ? P’1 (2)

y
? P’1 (3) x
13/26

P2’’? z

x

P2’’? z

(4) 应用逆旋转变换将旋转轴回到原方向; (5) 应用逆平移变换将旋转轴变换到原位置。
y ? P’1 z (4) ? P’2 x z (5) y P2 ? P1 ? x

14/26

例. 求变换AV,使过原点的向量V=(a,b,c)与z轴的 正向一致。
y V
?

y x x V’

实现步骤:

z

V’

z

?

(1)将V绕x轴旋转到xz 平面上;
(2)再绕y轴旋转使之与z轴正向重合。 旋转角度的确定:绕x轴旋转的角度 ? 等于向量V在yz 平 面上的投影向量与z 轴正向的夹角。 y V=(a,b,c) V1=(0,b,c)
?

x
15/26

z

根据矢量的点乘与叉乘,可以算出:
sin ? ?
2

b b ?c
2

, cos ? ?
2

c b ?c
2

因此,
?1 ? 0 ? R x ?? ? ? ? ?0 ? ?0 ? 0 c b ?c b
2 2 2 2

0 b b ?c c
2 2

?

b ?c 0

b ?c 0
2

2

0? ? 0 ? ? 0? ? 1? ?

V ? ? VR

?? ? ? x

?a ,0 ,

b ?c
2

2

?
16/26

类似地,可以求出:
sin ? ? ?
2

a a ?b ?c
2 2

, cos ? ?
2

b ?c
2 2

2

a ?b ?c

2

2 2 ? b ?c ? 2 2 2 a ?b ?c ? 0 R y ?? ? ? ? ? a ? ? 2 2 2 a ?b ?c ? 0 ? ?

0 1 0 0

a a ?b ?c 0
2 2 2

b ?c
2 2 2

2 2

a ?b ?c 0

? 0? ? 0? ? 0? ? 1? ?

AV ? R x ?? ? R y ? ?

?

17/26

利用这一结果,则绕任意轴旋转的变换矩阵可表示为: y P2 ? P1 ? y ? P’1 z 1) T ? P’2

x
z

x

y
? P’1
R x ?? ?R y ? ?

P2’’? z 2)

x
?

P2’’? z
?1

? P’1 3)
R z ??

x
?

R ?? ? ? T ? R x ?? ? ? R y ? ? ? ? R z ?? ? ? R y

? ? ? ? R x? 1 ?? ? ? T ? 1
18/26

7.2.3 绕任意轴旋转变换的简单算法
给定具有单位长的旋转轴A=[ax,ay,az]和旋转角 ? ,
则物体绕OA轴旋转变换的矩阵表示可确定如下:
?a xa x ? ? ?a a A ? y x ?a za x ? ? 0 ? ? A ? ? az ?? a y ? a xa y a ya y a za y ? az 0 ax a xaz ? ? a yaz ? a za z ? ? a ? ? ? ax? 0 ? ?
?a xa x ? ? ?a a A ? y x ? y ?a xa x a xa y a xa x a xa x

y
a xa z ? ? a xa x ? a xa x ? ?

A ?
?

?

o z 轴角旋转 x

* ? ? M ? A ? cos ? ? I ? A ? sin ? ? A

?

?

P'? P ? M

T

其中 M

T

表示M的转置矩阵。
19/26

利用这一结果,则绕任意轴旋转的变换矩阵可表示为: y y P2 ? P1 ? x z
R ?? ? ? T ? M
T

A ? P’2 ? P’1 x

z
?T
?1

其中旋转轴A=[ax,ay,az]为

P2 ? P1 P2 ? P1

传统的方法通过绕坐标轴旋转变换的乘积表示绕任意轴旋 转的变换。与之相比,这种方法更直观。
20/26

7.2.4 三维变换矩阵的功能分块
? a 11 ? a ? 12 ? a 13 ? ? tx a 21 a 22 a 23 ty a 31 a 32 a 33 tz px ? ? py ? pz ? ? s ?

(1)三维线性变换部分 (2)三维平移变换部分

(3)透视变换部分
(4)整体比例因子

21/26

7.3 三维坐标变换
几何变换:在一个参考坐标系下将物体从一个 位置移动到另一个位置的变换。 坐标变换: 一个物体在不同坐标系之间的坐标 变换。如从世界坐标系到观察坐标系的变换; 观察坐标到设备坐标之间的变换。再如,对物 体造型时,我们通常在局部坐标系中构造物体, 然后重新定位到用户坐标系。

22/26

坐标变换的构造方法:
与二维的情况相同,为将物体的坐标描述从一个系统转 换为另一个系统,我们需要构造一个变换矩阵,它能使 两个坐标系统重叠。具体过程分为两步: (1)平移坐标系统oxyz,使它的坐标原点与新坐标系 统的原点重合; (2)进行一些旋转变换,使两坐标系的坐标轴重叠。

有多种计算坐标变换的方法,下面我们介绍一种简单的 方法。

23/26

设新坐标系o’x’y’z’ 原点的 坐标为(x0,y0,z0),相对 原坐标系其单位坐标矢量 为:
u ? ? ?u ? 1 , u ? 2 , u ? 3 ? x x x x

y

y’
u ?y

? x0 , y0 , z0 ?
u? z

u? x

x’

z’ ? (0,0,0) z x

u ? ? ?u ? 1 , u ? 2 , u ? 3 ? y y y y
u ? ? ?u ? 1 , u ? 2 , u ? 3 ? z z z z

将原坐标系xyz下的坐标转换成新坐标系x’y’z’的坐标 可由以下两步完成: 首先, 平移坐标系xyz,使其原点与新坐标系x’y’z’的 原点(x0,y0,z0)重合;

24/26

平移矩阵为:
? 1 ? 0 ? T ? ? 0 ? ? ? x0 0 1 0 ? y0 0 0 1 ? z0 0? ? 0 ? 0? ? 1?

y

y’

y
u ?y

?(x,y,z)
x

? x 0 , y 0 , z 0 ??

u? (0,0,0)

x’ x

z ? (0,0,0) z’

u? z

x

z 第二步,利用单位坐标向量构造坐标旋转矩阵
? u ?1 x ? ? u ? x2 R ? ?u? 3 x ? ? 0 u ?y 1 u ?y 2 u ?y 3 0 u ?1 z u?2 z u?3 z 0 0? ? 0 ? 0? ? 1?
25/26

该矩阵R将单位向量

u? x

u ?y u ? z

分别变换到x,y和z 轴。

综合以上两步,从oxyz到o’x’y’z’的坐标变换的矩阵为
T ?? x 0 , ? y 0 , ? z 0 ? ? R

,也即坐标变换公式为:

? x ?, y ?, z ?,1 ? ? ? x , y , z ,1 ? ? T ?? x 0 , ? y 0 , ? z 0 ? ? R

说明:变换矩阵TR将一个直角坐标系变换为另一个 坐标系。即使一个坐标系是右手坐标系,另一个为 左手坐标系,结论依然成立。

26/26


相关文章:
第七章_三维转动群
第七章 三维转动群 无限群分为分立无限群和连续无限群。 关于有限群的理论对...在平面内的笛卡尔坐标系(x,y)在 SO(2)群的旋转下的变换,可以生成群的表 ...
三维变换
99页 1财富值 第7章三维变换 26页 免费喜欢此文档的还喜欢 java实验二(课外...将上述值代入一点透视变换矩阵。 )(3)修改上面程序,实现两点透视变换的图形。 ...
第7章 倾斜叠加及其应用
第七章 倾斜叠加及其应用 第七章 倾斜叠加及其应用 7.1 引置 在1.6节中,...这个算子对由点震源获得的波场,变换成线震源获得的波场,所产生的 三维效应进行...
矩阵的三维变换
这将在透视变换一节中得到解 答。 2.3.7 三维透视变换 三维齐次几何变换矩阵中第四列元素组成的 3x1 子矩阵与透视交换有关, 其中的元素称为透 视参数。对...
三维图形变换
三维图形变换_数学_自然科学_专业资料。计算机绘制物体的投影图, 是将三维空间的...第7章 三维图形变换 107页 免费 矩阵在计算机三维图形变... 8页 免费 ...
三维基本几何变换研究
三维基本几何变换研究_计算机软件及应用_IT/计算机_专业资料。辽 宁工 业大学 ...7 辽宁工业大学课程设计说明书(论文) 第三章 算法的程序框图流程图和功能模块...
cad第七章 三维对象的创建与编辑(1)
1 第七章 三维对象的创建与编辑(1) 三维对象的创建与编辑( ) 讲课附件: ...“特性”---设置二维或三维、 三、坐标系的变换 1、 工 具 栏 : 平移: ...
第四章 三维几何变换
第四章 三维几何变换 1 在三维空间中,如果要求沿方向[A,B,C]产生放大到 S 倍的图形,推导出变换矩阵。A、B 和 C 分别表示 直线在 x,y 和 z 轴方向的...
第5章三维形体的变换
第5 章 三维变换 p178 §5-1 三维几何的变换 5-1-1 概念三维坐标系:右手坐标系法则 三维形体的变换是二维图形变换的推广。 本节主要讨论旋转变换和投影变换 ...
三维坐标变换
三维坐标变换_工学_高等教育_教育专区。OpenGL第二章 1. 三维观察坐标系 1.1 观察坐标系 三维观察 为了在不同的距离和角度上观察物体,需要在用户坐标系下建 立...
更多相关标签: