计算机图形学-第三章-变换及裁剪
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 0
0 11
(x,y) X
10
二维放缩
对于进行放缩的变换公式
Y
(x,y) (x',y')
O
X
x sx 0 0 x
y
0
sy
0 y
1 0 0 1 1
其中sx和sy分别为x和y分量的放缩比例
11
剪切变换(Shear)
沿X-轴方向的剪切变换
Y (x,y)
(x',y')
x 1 tg 0 x
裁剪推广应用:
多面体对多面体的裁剪,实体造型系统中执行布尔 运算
在窗口系统中复制、移动或删除画面中某一部分 (Cut-Copy-Paste)
25
3 规格化设备坐标系 用于用户的图形是定义在用户坐标系里,
而图形的输出定义在设备坐标系里,它依赖于 基体的图形设备。由于不同的图形设备有不同 的设备坐标系,且不同设备间坐标范围也不尽 相同, 例如:分辨率为1024*768的显示器其屏幕坐标的 范围:x方向为0~1023,y方向为0~767,分辨 率为640*480的显示器,其屏幕坐标范围为:x 方向0~639,y方向0~479
1
Cz z
1 0 0 0 10 0 0 1 1
(x, y, z, 1)为世界坐标系中的点
(u, v, n, 1)为视点坐标系中的点
29
三维变换的基本概念
场景造型:
场景坐标系:世界坐标系、局部坐标系 变换:造型变换
放置虚拟照相机
坐标系:视点坐标系(虚拟照相机的位置、朝 向以及向上的方向)
3. 齐次坐标变换矩阵形式把直线变换成直线段,平面变 换成平面,多边形变换成多边形,多面体变换成多面 体。(图形拓扑关系保持不变)
4. 变换具有统一表示形式的优点 便于变换合成,便于硬件实现
齐次坐标表示点的优势
防止浮点数溢出 矩阵变换的统一表示
8
二维平移
二维点P(x,y)移动(tx,ty)后,得到点P'(x', y')
2、普通坐标与齐次坐标的关系为“一对多”由
普通坐标h→齐次坐标,由齐次坐标÷h→普通
坐标
齐次坐标与普通坐标之间是一一对应关系
x=X/ y=Y/
3、当h=1时产生的齐次坐标称为“规格化坐 标”,因为前n个坐标就是普通坐标系下的n维
坐标。
6
齐次坐标
(x,y)点对应的齐次坐标为 (xh,yh,h)
xhh,y x hh,h y 0
26
4、视点坐标系
视点坐标系定义于世界坐标系中; 其过程类似于拍照片:
照相机镜头的朝向N:视线方向 照相机的位置C UP方向
27
视点坐标系的交互建立
坐标原点C=(Cx,Cy,Cz):相机的位置 单位向量N=(Nx,Ny,Nz):镜头的朝向 与N不平行的向量UP:
V N UP N UP
37
二、窗口与视口
38
39
投影坐标系和投影变换
投影变换:三维二维
投影变换是在视点坐标系CUVN中进行的 透视投影:符合人类的视觉特点,产生的投
影效果更为真实 平行投影:物体的相对度量保持不变(例如两
个等长线段的投影结果仍然是等长的),适用 于建筑和机械设计
40
透视投影和平行投影
41
透视投影
刚体 变换
仿射 变换
17
例1:复合平移
求点P(x,y)经第一次平移变换(Tx1,Ty1),第二次平 移变换(Tx2,Ty2)后的坐标P*(x*, y*)
解:设点P(x,y,1)经第一次平移变换后的坐标为P(x
y 1),则
1 0 0
P'x' y' 1x y 10 1 0x y 1Tt1
Tx1 Ty1 1
先(非等比例)放缩,再旋转
15
复合二维变换
二维变换不具有交换性
先平移,再旋转
先旋转,再平移
16
复合二维变换
上述变换的组合可以得到特殊的二维变换
刚体变换
可以分解为:平移和旋转的组合 物体的形状没有变化,位置和方位有变化
仿射变换
可以分解为:平移、旋转和放缩的组合 保持点的共线性、长度的比例=>平行线
Y (x',y')
(x,y)
O
X
x' 1 y'0
10xyttxy
采用齐次坐标: (x, y) (x, y, 1)
x 1 0 tx x
y
0
1
ty
y
1 0 0 1 1
9
二维旋转
将点P(x,y)绕坐标原点按逆时针旋转角
Y
x cos sin 0x
(x',y') ysin cos 0y
(x,y)点对应的齐次坐标为三维空间的一条 直线
x h hx
yh
hy
z h h
7
齐次坐标的作用
1. 将各种变换用阶数统一的矩阵来表示。提供了用矩阵 运算把二维、三维甚至高维空间上的一个点从一个坐 标系变换到另一坐标系的有效方法。
2. 便于表示无穷远点。
例如:(x h, y h, h),令h等于0
变换:取景变换 (在视域四棱锥进行裁剪和背 面剔除 )
30
三维变换的基本概念
投影(照相、摄影):
坐标系:投影坐标系和窗口坐标系 变换:投影变换
二维显示
坐标系:窗口坐标系、规格化设备坐标系与 屏幕的物理坐标系
变换:设备变换、视窗变换
31
三维变换流程图
局部坐标系
造型变换
世界坐标系
取景变换
关于直线y=x的对称变换
Y (x,y)
O (-y,-x)
X y=-x
x 0 1 0 x
y
1
0
0
y
1 0 0 11
关于直线y=-x的对称变换
14
复合二维变换
平移、旋转和放缩矩阵通常记为T、R和S 二维变换具有结合性:(AB)C=A(BC) 二维变换不具有交换性
先旋转,再(非等比例)放缩
20
内容
二维变换 三维变换
场景坐标系和造型变换 视点坐标系和取景变换 投影坐标系和投影变换 屏幕坐标系和设备变换
裁剪
21
三维变换的基本概念
三维变换可以看作照相过程模拟,即如何将场景中的三 维几何物体变换到二维屏幕上
22
三维变换中的各种坐标系
23
坐标系
24
例如,对显示器而言,分辨率就是其设备的坐标系的界限范围。
UVN
得到两个向量 U=(Ux,Uy,Uz) 和V=(Vx,Vy,Vz), 然后单位化。
28
视点坐标系的交互建立
四个矢量C、U、V、N组成了视点坐标系 由世界坐标系到视点坐标系的取景变换:
u Ux Uy Uz 01 0 0 Cxx
vVx Vy Vz 00 1 0 Cyy
n
Nx
Ny
Nz
00
0
4
齐次坐标
所谓齐次坐标表示法就是由n+1维向量表示一个
n 维 向 量 。 如 n 维 向 量 (P1,P2, … ,Pn) 表 示 为
(hP1,hP2,hPn,h),其中h称为哑坐标。
5
齐次坐标
1、h可以取不同的值,所以同一点的齐次坐标
不是唯一的。如普通坐标系下的点(2,3)变换 为齐次坐标可以是(1,1.5,0.5)(4,6,2)(6,9,3) 等等。
1 0 0 11
关于坐标原点的对称变换
x 1 0 0 x
y
0
1
0
y
1 0 0 1 1
关于X轴的对称变换
x 1 0 0 x
y
0
1
0
y
1 0 0 1 1
关于Y轴的对称变换
13
对称变换
Y (x,y) O
y=x X
(y,x)
x 0 1 0 x
y
1
0
0
y
1 0 0 1 1
42
透视投影
投影点:通常取视点坐标系中(0,0,0)点
投影平面:取作与视线方向(N方向)垂直
的平面n = d。假设在视点坐标系中的点为
(u,v,n),那么在投影面上的对应点坐标 (up,vp)为
up
u n/d
vp
v n/d
43
透视投影齐次坐标表示
记投影后的齐次坐标为(U,V,N,W),则透 视投影齐次坐标表示为:
第三章 变换与裁剪
内容
二维变换 三维变换 裁剪
2
内容
二维变换
齐次坐标表示 基本变换 其它变换
三维变换 裁剪
3
二维变换
通过二维变换和裁剪,将定义在二维世界 坐标系中的物体变换到以像素为单位的屏 幕坐标系中,实现二维物体的光栅显示
矢量图形、卡通动画
二维图形中常见的变换
齐次坐标表示: 基本变换:平移、旋转、放缩 其它变换:剪切、对称、复合
经第二次平移变换后的坐标为P*(x* y* 1)
P*x*
y* 1x'
y'
1
1 0
0 0 1 0
Tx2 Ty2 1
1 0 0 1 0 0
x y 1 0 1 0 0 1 0 x y 1Tt1Tt2
Tx1 Ty1 1Tx2 Ty2 1
∴变换矩阵为Tt=Tt1•Tt2
18
例2:多种复合组合
例:对一线段先放大2倍(即Sx=Sy=2),再平移Tx=10,Ty=0。
y z
s0in
1 0
0
cos
0 y 0 z
1 0 0 0 11
绕z轴逆时针旋转角的旋转变换Rz
x cos sin 0 0 x
y z
sin0
1 0
cos
0 0
0 0 y 1 0 z 0 11
36
三维造型变换
非线性三维模型变换:变换矩阵是空间位
置(x, y, z)或者旋转角度 (x, y, z)的函数。
三维平移T:三维点P(x,y,z)移动(tx,ty,tz)后, 得到点P'(x',y',z')
x 1 0 0 tx x
y
0
1
0
t
y
y
z 1
0 0
0 0
1 0
tz 1
z 1
34
三维模型变换:放缩
三维放缩S:三维点P(x,y,z)放缩(sx,sy,sz)后, 得到点P' (x',y',z')
y (x,y)
y (x´,y´)
y
(x´´,y´´)
x
x
Tx
x
解:设点(x,y)为线段上的任意一点,点(x´,y´)为点(x,y)放大后 的坐标,点(x´´,y´´)为点(x´,y´)平移后的坐标,则: [x´ y´ 1]= [x y 1]S2(2,2) [x´´ y´´ 1]= [x´ y´ 1]T2(10,0) [x´´ y´´ 1]= [x´ y´ 1]T2(10,0)=[x y 1]S2(2,2)T2(10,0)
令:M=S2(2,2)T2(10,0) ,则M即为组合变换
19
例3:旋转变换
例:对参考点F(xf,yf)做旋转变换。
解:1、把旋转中 心F(xf,yf)平移至坐 标原点,即坐标系 平 移 ( -xf,-yf ) , 则
2、进行旋转变换
1 0 0
x 1 y 1 1 xy1 0 1 0 xy1 Txf, yf
46
三维变换流程图
局部坐标系
造型变换
世界坐标系
取景变换
图像坐标系
视窗变换
视点坐标系
投影变换
设备变换
屏幕坐标系
规格化设备 坐标系
三维裁剪? 二维裁剪?
47
裁剪(Clipping)
裁剪是确定场景或画面中位于给定区域(2D或 3D裁剪窗口)之内的部分
裁剪还可用于图形反走样、隐藏线、隐藏面、 阴影、纹理等算法中
U 1 0 0
V N
0 0
1 0
0 1
W 0 0 1/ d
0u
0
v
0n
0 1
U W
,V W
,N W
u n / d
,
v n /d
,d
u p , v p , d
44
关于透视投影
一点透视投影
两点透视投影
三点透视投影
45
内容
二维变换 三维变换 裁剪
二维线裁剪 二维多边形裁剪 文本裁剪 三维裁剪 关于三维变换与裁剪
图像坐标系
视窗变换
视点坐标系
投影变换
设备变换
规格化设备 坐标系
屏幕坐标系
32
场景坐标系和模型变换
几何场景建立于世界坐标系中 场景中的具体物体与局部坐标系相联系
局部坐标系可以简化物体的定义 物体={标准体素,变换}
造型变换:
物体从局部坐标系到世界坐标系的变换 三维线性和非线性变换
33
三维模型变换:平移
xf yf 1
c ossin0 x2 y2 1 x1 y1 1 sinc o0 s x1 y1 1 T
0 0 1
3、将坐标系平移 回原来的原点
x*y*1 x 2
1 00
y 2 1 0 10 x 2
y 2 1 Txf,
yf
xf yf 1
4 、 因 此 变 换 矩 阵 : M T x f , y f• T ( ) • T x f ,y f
x sx 0 0 0 x
y
0
sy
0
0
y
z 0 1 0
0 0
sz 0
0 z 1 1
35
三维造型变换:旋转
绕x轴逆时针旋转角
的旋转变换Rx
x 1
y z
00
1 0
0源自文库
cos sin
0
0
sin cos
0
0 x 0 y 0 z 11
绕y轴逆时针旋转角
的旋转变换Ry
x cos 0 sin 0 x
y
0
1
0 y
1 0 0 11
X
(1) 变换过程中, y坐标保持不变,而x坐标值发生线性变化;
(2) 平行于X轴的线段变换后仍平行于X轴,平行于Y轴的线段变换
后错切成与Y轴成固定角的直线
12
对称变换
Y
(-x,y) O
(-x,-y)
(x,y) X
(x,-y)
x 1 0 0 x
y
0
1 0 y