图形变换与齐次坐标
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对称变换 在二维变换下,对称变换是以线和点为基准, 在三维变换下,对称变换则是以面、线、点为 基准的。
对称于XOY平面
[x’ y’ z’ 1] = [x y -z 1]=[x y z 1]
对称于YOZ平面
[x’ y’ z’ 1] = [-x y z 1]=[x y z 1]
0 1 0 0 0 1 0 0 0 0 - 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 - 1 0 0 0 1 0 0 0 0 0 0 1
y y
y´
P(x,y)
P´(x´,y´) x
P´(x´,y´)
θ
P(x,y) x
θ
x´
3 比例变换
x’ = x*sx
y’= y*sy
Sx = Sy: 均匀缩放。 Sx = Sy > 1,放大
Y
P’(x’,y’)
P(x,y)
X
Sx = Sy < 1,缩小
Sx 不等于Sy时,沿坐标轴方向伸展和压缩
4. 对称变换
图形变换和齐次坐标
图形变换是计算机图形学基础内容之一 几何变换,投影变换,视窗变换 线性变换,属性不变,拓扑关系不变。 作用:
把用户坐标系与设备坐标系联系起来; 可由简单图形生成复杂图形; 可用二维图形表示三维形体; 动态显示。
图形的几何变换
几何变换:图形的几何信息经过几何变 换后产生新的图形。 几何变换的两种形式:
绕Y轴旋转
此时,Y坐标不变,X,Z坐标相应变化。 Z (x,y) Y (x’y’) X
Z
θ
O
X
α
O
x’= ρsin(α+θ) = x*cosθ + z*sinθ y’= y z’= ρcos(α+θ) = z*cosθ- x*sinθ
矩阵表示为
cos 0 x' y' z' 1 x y z 1 sin 0
T1
0 0 1
T2
T3
T =T1 T2 T3 称为矩阵级联,也称复合变换。
复合变换及变换的模式
问题:如何实现复杂变换?
关于任意参照点的旋转变换
R( xr , yr ; ) T ( xr , yr ) R( ) T ( xr , yr )
复合变换及变换的模式
l = sinθ1cosθ2 m= sinθ1sinθ2 n = cosθ1
从而通过上式即可得到θ1、θ2 的值。
问题:当任一轴线的端点不在原点时,此时应如 何计算变换矩阵?
绕任意轴的旋转变换
基本思想:因任意轴不是坐标轴,应设法旋转该 轴,使之与某一坐标轴重合,然后进行旋转θ角的 变换,最后按逆过程,恢复该轴的原始位置。
Z (x,y,z) N (l,m,n) γ (x’,y’,z’)
β
α
O
X
Y
能否转换成绕X、Y或Z轴旋转的变换?
Z θ2 N
θ1 O
Y
ON绕Z轴旋转θ2 到XOZ平面上,然后再绕Y轴 旋转θ1,即可与Z轴重合。
X
这样,可得空间上任一点绕ON轴旋转的变换 过程如下: 1)首先通过两次旋转,使ON轴与Z轴重合; 2)然后使点绕Z轴旋转θ角; 3)最后通过与1)相反的旋转,使ON轴回 到原来的位置。 假设,绕Z轴的旋转-θ2矩阵为T1 绕Y轴的旋转-θ1矩阵为T2 绕Z轴的旋转θ矩阵为T3 绕Y轴的旋转θ1矩阵为T4 绕Z轴的旋转θ2矩阵为T5
则总体变换矩阵为: T = T1 T2 T3 T4 T5
由上推导可看出,只要能求出θ1 、θ2的值,即 可通过上式获得绕ON轴的变换矩阵。
由于矢量 (0 0 1)绕Y轴旋转θ1 ,再绕Z轴旋转θ2 即 可与ON轴重合。即:
cos1 0 l m n 1 [0 0 1 1] sin1 0
b e i
c f j
dy dz
p q r s
2. 三维基本变换 轴向比例变换
x’ = ax y’ = ey [x‘ y’ z‘ 1]=[ax ey jz 1] z’ = jz 矩阵表示:
a 0 x' y' z' 1 x y z 1 0 0 0 0 0 e 0 0 0 j 0 0 0 1
关于X轴的对称变换 P(x,y) 对称点为 P’(x, -y) 关于Y轴的对称变换 P(x,y)对称点为P’(-x, y)
关于坐标原点的对称变换 P(x,y) 关于原点的对称点为P’(-x,-y)
5 错切变换 (SHEAR)
(1) 沿x方向产生错切 (x,y)
x’ = x + y*tag(θ)
S ( xr , yr ; sx , sy ) T (xr , yr ) S (sx , sy ) T ( xr , yr )
复合变换及变换的模式
变换的结果与变换的顺序有关(矩阵乘 法不可交换)
Translate2D(1,0); Rotate2D(45); House(); Rotate2D(45); Translate2D(1,0); House();
0 - sin1 0 cos 2 sin 2 1 0 0 - sin 2 cos 2 0 cos1 0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 1
[l m n 1] = [sinθ1 cosθ2
sinθ1sinθ2
cosθ1 1]
0 - sin 1 0 0 cos 0 0
0 0 0 1
绕Z轴旋转
此时,Z坐标不变,X,Y坐标相应变化。 Z (x,y) X O Y
(x’y’)
Y O
θ
α
X
x’= ρcos(α+θ) = x*cosθ - y*sinθ y’= ρsin (α+θ) = x*sinθ+ y*cosθ z’= z
特别注意
求变换矩阵是要明确变换模型
左乘 右乘
采用变换矩阵左乘的图形系统一般用堆栈实 现
先调用的变换后执行,后调用的变换先执行
三维几何变换
1. 三维变换矩阵 统一的二维变换矩阵:
b p a c d q dx dy s
那么,可否有统一的三维变换矩阵?
a d h dx
变换合成的问题
引入齐次坐标
变换的表示法统一
1. 恒等变换
2. 比例变换
1 0 0 0 1 0 x ' y ' 1 x y 1 0 0 1
x ' ax y ' by a 0 0 [ x ' y ' 1] [x y 1] 0 b 0 0 0 1
7. 绕任一点的旋转变换 假定该任一点为P(m,n),旋转 角为θ
1
2 (x2,y2) θ
3 (x’,y’) n
(x1,y1)
m
0 0 1 [ x1 y1 1] x y 1 0 1 0 -m -n 1 cos sin [ x 2 y2 1] [x1 y1 1] -sin cos 0 0 0 1 0 [x' y' 1] [x2 y2 1] 0 1 0 m n 1 [ x ' y' 1] [x y 1]T1T2 T3
3. 对称变换 关于X轴的对称变换
1 0 0 0 -1 0 x ' y ' 1 x y 1 0 0 1
关于Y轴的对称变换
1 0 0 0 1 0 x ' y ' 1 x y 1 0 0 1
1 0 0 0 0 1 0 0 = x y z 1 0 0 1 0 dx dy dz 1
旋转变换
绕X轴变换 空间上的立体绕X轴旋转时,立体上各点的X坐标不 变,只是Y、Z坐标发生相应的变化。 Z (x’y’)
θ
Z (x’y’)
θ
(x,y)
X
O
α O
(x,y) Y
齐次坐标的作用:
1. 将各种变换用阶数统一的矩阵来表示。提供了 用矩阵运算实现图形变换,或者把二维、三维 甚至高维空间上的一个点从一个坐标系变换到 另一坐标系的有效方法。
2. 便于表示无穷远点。 例如:(x*H, y*H, H),令H等于0,
齐次坐标与二维变换的矩阵表示
多个变换作用于多个目标
变换合成
y’ = y
Y
θ
(x’,y’)
X (2) 沿y方向产生错切 x’ = x y’ = y +x * tag(θ) Y (x’,y’) θ (x,y) X
二维图形变换的矩阵表示
1. 齐次坐标
齐次坐标就是一个n维矢量的(n+1)维矢量 表示。 例如:二维坐标点P(x,y)的齐次坐标为: (H*x, H*y, H)。 二维坐标与齐次坐标是一对多的关系。通 常都采用规格化的齐次坐标,即取H=1。 (x,y) 的规格化齐次坐标为 (x,y,1)。 齐次坐标的几何意义:可理解为在三维空 间上第三维为常数的一平面上的二维向量。
关于坐标原点的对称变换
1 0 0 0 -1 0 x ' y ' 1 x y 1 0 0 1
5. 旋转变换
ρ
(x’,y’) θ (x,y) α
其矩阵表示为:
cos sin 0 -sin cos 0 x ' y' 1 [ x y 1] 0 1 0
6. 平移变换
x' x m y' y n [ x' y' 1] [x m y n 1] 1 0 0 x y 10 1 0 m n 1
Y n
m P’(x’y’) P(x,y) X
变换过程如下:
(x’, y’) θ (x,y) (m,n)
全比例变换 当变换矩阵取下列值时:
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 s
[x y z 1]T = [x y z s]=[x/s y/s z/s 1] 当s>1, 沿三个轴向等比例缩小 当0<s<1, 沿三个轴向等比例放大 (轴向比例变换与全比例变换的关系)
矩阵表示为:
x '
y' z' 1 x
cos sin - sin cos y z 1 0 0 0 0
0 0 1 0
0 0 0 1
组合变换:空间一点绕空间任一轴线的旋转变 换。要通过将几个基本的变换组合在一起,得 到该组合变换。 假定空间任一直线的方向矢量分别为:(l,m,n) 并经过原点
Y
x’= x y’= ρcos(α+θ) = y*cosθ- z*sinθ z’= ρsin(α+θ) = y*sinθ+z*cosθ
矩阵表示为:
0 0 1 0 cos sin x' y' z' 1 x y z 1 0 - sin cos 0 0 0
0 0 0 1
x cos y sin
ρ
(x’,y’) θ (x,y) α
x ' cos( ) cos cos sin sin x cos y sin y ' sin( ) sin cos cos sin x sin y cos
对称于XOZ平面
[x’ y’ z’ 1] = [x -y z 1]=[x y z 1]
那么,分别对称于X、Y、Z轴和坐标原点的变 换矩阵是什么?
平移变换 是指空间上的立体从一个位置移动到另一个位 置时,其形状大小均不发生改变的变换。 [x’ y’ z’ 1] = [ x+dx y+dy z+dz 1]
1.图形不变,坐标系改变; 2.图形改变,坐标系不变。
二维图形变换
y
来自百度文库
y
1. 平移变换
x x
从点P[x,y]平移到点 P’[x’,y’] x’ = x + m y’ = y + n
Y
n
m P’(x’y’) P(x,y)
y
P(x,y)
P´(x´,y´)
X
x
n
m
2 旋转变换
一个点绕原点的旋转,逆时针方向为正。