计算机图形学第6章

上传人:ji****n 文档编号:57529333 上传时间:2018-10-22 格式:PPT 页数:105 大小:2.63MB
返回 下载 相关 举报
计算机图形学第6章_第1页
第1页 / 共105页
计算机图形学第6章_第2页
第2页 / 共105页
计算机图形学第6章_第3页
第3页 / 共105页
计算机图形学第6章_第4页
第4页 / 共105页
计算机图形学第6章_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《计算机图形学第6章》由会员分享,可在线阅读,更多相关《计算机图形学第6章(105页珍藏版)》请在金锄头文库上搜索。

1、第6章 二维变换及二维观察,提出问题 如何对二维图形进行方向、尺寸和形状方面的变换 如何方便地对二维图形进行观察,二维变换及二维观察,基本几何变换与基本概念 二维图形几何变换的计算 复合变换 变换的性质,6.1 基本概念 6.1.1 齐次坐标 (homogeneous coordinates) 齐次坐标表示: 用n+1维向量表示一个n维向量。 例:非齐次坐标点Px, y: 3, 5齐次坐标点Phx, hy, h: 12, 20, 4; 6, 10, 2; 3, 5, 1 规范化齐次坐标表示: h=1的齐次坐标表示。 如何从齐次坐标转换到规范化齐次坐标?hp1, hp2, ,hpn, h hp1

2、 /h, hp2 /h, , hpn /h, 1,6.1.2 几何变换 图形的几何变换: 对图形的几何信息经过平移、比例、旋转等变换后产生新的图形,是图形在方向、尺寸和形状方面的变换。,6.1.3 二维变换矩阵,假设:p(x,y)为x0y平面上二维图形变化前的点, p(x,y)为变换后的点,则二维变换为:,其中T2D表示为4个子矩阵。,T1,T2,T3,T4,比例、旋转、对称、错切等,平移,投影,整体比例,6.2 基本几何变换,基本几何变换都是相对于坐标原点和坐标轴进行的几何变换: p(x,y)为xOy平面上二维图形变化前的点, p(x,y)为变换后的点。 6.2.1 平移变换 平移是指将p点

3、沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。,平移是一种不产生变形而移动物体的刚体变换(rigid-body transformation),Tx,Ty称为平移矢量,变换矩阵:,平移变换演示,6.2.2 比例变换,比例变换是指对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。其中Sx和Sy称为比例系数。,比例变换的齐次坐标计算形式:,(a) Sx=Sy比例,(b) SxSy比例,图示:比例变换,整体比例变换:,比例变换演示,6.2.3 旋转变换,二维旋转是指将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p的重定位过程。,矩阵:逆时针旋转角:,顺时针旋转角

4、:,简化计算:当很小时,cos1, sin,则有如下简化计算公式:,旋转变换演示,6.2.4 对称变换,对称变换后的图形是原图形关于某一轴线或原点的镜像。,(1)关于x轴对称,(2)关于y轴对称,(3)关于原点对称,(4)关于y=x轴对称,(5)关于y=-x轴对称,对称变换演示,6.2.5 错切变换,错切变换,也称为剪切、错位变换,用于产生弹性物体的变形处理。,图6-10 错切变换,其变换矩阵为:,(1)沿x方向错切: b = 0, c 0,(1)沿x方向错切 (2)沿y方向错切 (3)两个方向错切,(2)沿y方向错切: c = 0, b 0,(3)两个方向错切: b 0 且 c 0,错切变换

5、演示,6.2.6 二维图形几何变换的计算,几何变换均可表示成 P= P * T 的形式1. 点的变换:行矩阵或列矩阵,2. 直线的变换:两端点,3. 多边形的变换:每个顶点的坐标位置,4. 曲线的变换通过变换曲线上的每一点来实现。,6.3 复合变换,复合变换是指: 图形作一次以上的几何变换,变换结果是每次的变换矩阵相乘。 任何一复杂的几何变换都可以看作基本几何变换的组合形式。 复合变换具有如下形式:,6.3.1 二维复合平移两个连续平移是相加的。,复合平移变换演示,6.3.2 二维复合比例连续比例变换是相乘的。,复合比例变换演示,6.3.3 二维复合旋转两个连续旋转是相加的。可写为:,复合旋转

6、变换演示,6.3.4 其它二维复合变换,分解旋转变换矩阵为:,因此: 旋转变换=比例变换+错切变换,复合平移变换演示,6.3.5 相对任一参考点的二维几何变换,相对某个参考点(xF,yF)作二维几何变换,其变换过程为:(1) 平移(2) 针对原点进行二维几何变换。(3) 反平移,35,例1. 相对点(xF,yF)的旋转变换(p155: 6-23),例2. 相对点(xF,yF)的比例变换 (p155: 6-24),6.3.6 相对任意方向的二维几何变换,相对任意方向作二维几何变换,其变换的过程是:(1) 旋转变换(2) 针对坐标轴进行二维几何变换;(3) 反向旋转例. 相对直线y=x的反射变换(

7、p155: 6-26),例(p156) 将正方形ABCO各点沿下图所示的(0,0)(1,1)方向进行拉伸,结果为如图所示的菱形,写出其变换矩阵和变换过程。,可能发生的变换:沿(0,0)到(1,1)的比例变换,课后作业: 习题六(p176) 6.1 名次解释:齐次坐标,规范化齐次坐标,图形的几何变换。 6.2 说明二维变换矩阵T2D 中各元素在变换中的具体作用。,6.3.7 坐标系之间的变换,问题:,分析:,可以分两步进行:,于是:,其中:,6.3.8 光栅变换,直接对帧缓存中象素点进行操作的变换称为光栅变换。 光栅平移变换:,90、180和270的光栅旋转变换:,复杂情形:任意角度的光栅旋转变

8、换:,光栅比例变换:,6.3.9 变换的性质,仿射变换具有平行线不变性和有限点数目的不变性 平移、比例、旋转、错切和反射等变换均是二维仿射变换的特例,反过来,任何常用的二维仿射变换总可以表示为这五种变换的复合。,二维仿射变换是具有如下形式的二维坐标变换:,二维几何变换具有如下一些性质:,仅包含旋转、平移和反射的仿射变换维持角度和长度的不变性; 比例变化可改变图形的大小和形状; 错切变化引起图形角度关系的改变,甚至导致图形发生畸变。,6.4 二维观察,6.4.1 基本概念 在计算机图形学中,将在用户坐标系中需要进行观察和处理的一个坐标区域称为窗口(Window) 将窗口映射到显示设备上的坐标区域

9、称为视区(Viewport),4.1.3 坐标系,要将窗口内的图形在视区中显示出来,必须经过将窗口到视区的变换(Window-Viewport Transformation)处理,这种变换就是观察变换(Viewing Transformation)。,观察坐标系(View Coordinate)和规格化设备坐标系(Normalized Device Coordinate) : 观察坐标系是依据窗口的方向和形状在用户坐标平面中定义的直角坐标系。 规格化设备坐标系也是直角坐标系,它是将二维的设备坐标系规格化到(0.0,0.0)到(1.0,1.0)的坐标范围内形成的。,引入了观察坐标系和规格化设备坐

10、标系后,观察变换分为如下图所示的几个步骤,通常称为二维观察流程。,变焦距效果: 窗口大小改变,视区大小不变,整体缩放效果:窗口大小不变,视区大小改变,漫游效果:窗口大小不变,位置移动;视区不变,6.4.2 用户坐标系到观察坐标系的变换,用户坐标系到观察坐标系的变换分别由两个变换步骤合成:T=TrTR 1. 将观察坐标系原点移动到用户坐标系原点,2. 绕原点旋转使两坐标系重合,因此,用户坐标系到观察坐标系的变换:,相应坐标点的变换:,6.4.3 窗口到视区的变换,要将窗口内的点(xw, yw)映射到相对应的视区内的点(xv, yv)需进行以下步骤: (1) 将窗口左下角点(wxl, wyb)移至

11、用户坐标系的坐标原点:,(2) 针对原点进行比例变换:,(3) 进行反平移:将视区左下角点移至设备坐标系原来的位置(vxl, vyb)。,平移,反平移,比例,相应坐标点的变换:,变换矩阵:,课后作业: 习题六(p176-177) 6.1 名词解释:窗口,视区,变焦距效果。,6.5.2 直线段的裁剪,已知条件: (1)窗口边界wxl,wxr,wyb,wyt的坐标值; (2)直线段端点p1p2的坐标值x1, y1, x2, y2。,直线段和剪裁窗口的可能关系: 完全落在窗口内 完全落在窗口外 与窗口边界相交,对于既不完全落在窗口内又不能确定完全落在窗口外的直线,计算它与剪裁窗口边界的交点,p2,p

12、1,实交点:直线段与窗口矩形边界的交点; 虚交点:处于直线段延长线或窗口边界延长线上的交点。,1. Cohen-Sutherland算法 基本思想:对每条直线段p1(x1, y1) p2(x2, y2)分三种情况处理: (1)直线段完全可见,“简取”之。,(2)直线段完全不可见,“简弃”之。,(3)直线段既不满足“简取”的条件,也不满足“简弃”的条件,需要对直线段按交点进行分段,分段后重复上述处理。,且,且,且,且,编码:对于任一端点(x, y),根据其坐标所在的区域,赋予一个4位的二进制码D3D2D1D0。 编码规则如下: 若xwxr,则D1=1,否则D1=0; 若ywyt,则D3=1,否则

13、D3=0。,裁剪:,裁剪一条线段时,先求出端点p1和p2的编码code1和code2,然后:(1)若code1|code2=0,对直线段应简取之。(2)若code1&code20,对直线段可简弃之。(3)若上述两条件均不成立。则需求出直线段与窗口边界的交点。在交点处把线段一分为二,其中必有一段完全在窗口外,可以弃之。再对另一段重复进行上述处理,直到该线段完全被舍弃或者找到位于窗口内的一段线段为止。,左、右边界交点的计算: ; x为wxl 或wxr,上、下边界交点的计算: ; y为wyb 或wyt,求交:假定直线的端点坐标为(x1,y1)和(x2,y2),算法步骤: (1)输入直线段的两端点坐标

14、:p1(x1,y1)、p2(x2,y2),以及窗口的四条边界坐标:wyt、wyb、wxl和wxr。 (2)对p1、p2进行编码:点p1的编码为code1,点p2的编码为code2。 (3)若code1|code2=0,对直线段应简取之,转(6);否则,若code1&code20,对直线段可简弃之,转(7);当上述两条均不满足时,进行步骤(4)。 (4)确保p1在窗口外部:若p1在窗口内,则交换p1和p2的坐标值和编码。 (5)按左、右、上、下的顺序求出直线段与窗口边界的交点,并用该交点的坐标值替换p1的坐标值。也即在交点s处把线段一分为二,并去掉p1s这一段。转(2)。 (6)用直线扫描转换算

15、法画出当前的直线段p1p2。 (7)算法结束。,77,p2,p1,Cohen-Sutherland算法:,图6-27 直线段P1P2的编码裁剪,78,用编码方法实现了对完全可见和不可见直线段的快速接受和拒绝; 求交过程复杂,有冗余计算,并且包含浮点运算,不利于硬件实现。,Cohen-Sutherland算法,2. 中点分割算法,基本思想:当对直线段不能简取(不满足code1|code2=0)也不能简弃(不满足code1&code20)时,简单地把线段等分为二段,对两段重复上述测试处理,直至每条线段完全在窗口内或完全在窗口外。,中点分割算法的核心思想是通过二分逼近来确定直线段与窗口的交点。,算法

16、步骤: (1)输入直线段的两端点坐标:p1(x1,y1)、p2(x2,y2),以及窗口的四条边界坐标:wyt、wyb、wxl和wxr。 (2)对p1、p2进行编码:点p1的编码为code1,点p2的编码为code2。 (3)若code1|code2=0,对直线段应简取之,保留当前直线段的端点坐标,转(5);否则,若code1&code20,对直线段可简弃之,转(5);当上述两条均不满足时,进行步骤(4)。 (4)求出直线段的中点M,将p1M、p2M入栈。 (5)当栈不空时,从栈中弹出一条直线段,取为p1p2,转(2)进行处理。否则,继续(6)。 (6)当栈为空时,合并保留的直线段端点,得到窗口内的直线段p1p2。用直线扫描转换算法画出当前的直线段p1p2,算法结束。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号