三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
第7章 三维变换
7.1 简介 7.2 三维几何变换 7.3 三维坐标变换
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
7.1 简介三维平移变换、比例变换可看成是二维情况的 直接推广。但旋转变换则不然,因为我们可选 取空间任意方向作旋转轴,因此三维变换处理 起来更为复杂。 与二维变换相似,我们也采用齐次坐标技术 来描述空间的各点坐标及其变换,这时,描 述空间三维变换的变换矩阵是4×4的形式。
由此,一系列变换可以用单个矩阵来表示。
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
7.2 三维几何变换7.2.1 基本三维几何变换1. 平移变换 若空间平移量为(tx, ty, tz),则平移变换为 z P’(x’,y’,z’) x x t x y y t y z z t P(x,y,z) z y 1 0 x y z 1 x y z 1 0 t x 0 1 0 ty 0 0 0 1 0 t z 1 0
x
补充说明:点的平移、 物体的平移、多面体 的平移、逆变换
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
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 y
z
x
x xsx , y ysy , z zsz
其中 sx , sy , sz 为正值。
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
(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 1 s y y f 0 0 sz 1 sz z f
(1)y
(x f,yf,zf)x z
(2)
y
x
x0 0 0 1
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
3. 绕坐标轴的旋转变换三维空间中的旋转变换比二维空间中的旋转变 换复杂。除了需要指定旋转角外,还需指定旋转 轴。 若以坐标系的三个坐标轴x,y,z分别作为旋转轴, 则点实际上只在垂直坐标轴的平面上作二维旋转。 此时用二维旋转公式就可以直接推出三维旋转变 换矩阵。
规定在右手坐标系中,物体旋转的正方向是右 手螺旋方向,即从该轴正半轴向原点看是逆时针 方向。
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
(1)绕 z 轴旋转
x x cos y sin y x sin y cos z zx y z x
y x
zz
(2)绕 x 轴旋转
y y cos z sin z y sin z cos x x xx
y
(3)绕 y 轴旋转
z z cos x sin x z sin x cos y y
z y
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
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 轴旋转
0 1 0 cos x y z 1 x y z 1 0 sin 0 0 cos 0 x y z 1 x y z 1 sin 0
0 0 sin 0 cos 0 0 1 0 0 0 1
绕 x 轴旋转
0 sin 1
0 0 cos 0 0
绕 y 轴旋转
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
旋转变换矩阵规律: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
中的元素添入相应的位置中,即
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
(1) 绕z轴正向旋转
角,旋转后点的z坐标值不变, x、y 角旋转。x xy 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
z
z
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
(2)绕x轴正向旋转 角,旋转后点的x坐标值不变, Y、z坐标的变化相当于在yoz平面内作正 角旋转。
0 1 0 cos x y z 1 x y z 1 0 sin 0 0
0 0 sin 0 cos 0 0 1
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
(3) 绕y轴正向旋转 角,y坐标值不变,z、x的坐标相当 于在zox平面内作正 角旋转,于是
cos 0 z y x 1 z y x 1 sin 0
0 sin 1 0 0 cos 0 0 0 sin 1 0 0 cos 0 0
0 0 0 1 0 0 0 1
即
cos 0 x y z 1 x y z 1 sin 0
这就是说,绕y轴的旋转变换的矩阵与绕x轴和z轴 变换的矩阵从表面上看在符号上有所不同。
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
7.2.2 组合变换1. 物体绕平行于某一坐标轴的旋转变换。基本步骤: (1) 平移物体使旋转轴与所平行的坐标轴重合; (2) 沿着该坐标轴进行指定角度的旋转; (3) 平移物体使旋转轴移回到原位置。y y y z
x
(d)z x z (a) (b) x z x
R T Rx T 1
(c)
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
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
P2’’ z
x
P2’’ z
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
(4) 应用逆旋转变换将旋转轴回到原方向; (5) 应用逆平移变换将旋转轴变换到原位置。y P’1 z (4) P’2 x z (5) y P2 P1 x
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
例. 求变换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
z
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
根据矢量的点乘与叉乘,可以算出:sin b b2 c 2 , cos c b2 c 2
因此,0 1 c 0 b2 c 2 Rx b 0 b2 c 2 0 0 0 b b2 c 2 c b2
c 2 0 0 0 0 1
V VR x a,0, b 2 c 2
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
类似地,可以求出:sin a a b c2 2 2
, cos
b2 c 2 a 2 b2 c 2
b2 c 2 a 2 b2 c 2 0 R y a a 2 b2 c 2 0
0 1 0 0
a a 2 b2 c 2 0 b2 c 2 a 2 b2 c 2 0
0 0 0 1
AV Rx Ry
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
利用这一结果,则绕任意轴旋转的变换矩阵可表示为: y P2 P1 y P’1 z 1) T P’2
xz
x
y P’1 x P’1 3) Rz
P2’’ z 2) Rx Ry
P2’’ z
x
R T Rx Ry Rz Ry 1 Rx 1 T 1
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
7.2.3 绕任意轴旋转变换的简单算法给定具有单位长的旋转轴A=[ax,ay,az]和旋转角 ,则物体绕OA轴旋转变换的矩阵表示可确定如下:
a x a x A a y a x az ax
axa y a ya y aza y
axaz a y az az az a x a x a a A y x y a x a x
yaxa y axax axax axaz axax axax
A
0 az a A a z 0 ax a y a x 0 M A cos I A sin A*
o z 轴角旋转 x
P' P M T其中 M T 表示M的转置矩阵。
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
利用这一结果,则绕任意轴旋转的变换矩阵可表示为: y y P2 P1 x z z A P’2 P’1 x
R T M T T 1
其中旋转轴A=[ax,ay,az]为
P2 P1 P2 P1
传统的方法通过绕坐标轴旋转变换的乘积表示绕任意轴旋 转的变换。与之相比,这种方法更直观。
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
7.2.4 三维变换矩阵的功能分块 a11 a 12 a13 tx a21 a22 a23 ty a31 a32 a33 tz px py pz s
(1)三维线性变换部分 (2)三维平移变换部分
(3)透视变换部分(4)整体比例因子