图形学课件cs52010章节

上传人:E**** 文档编号:90855472 上传时间:2019-06-19 格式:PPT 页数:49 大小:4.04MB
返回 下载 相关 举报
图形学课件cs52010章节_第1页
第1页 / 共49页
图形学课件cs52010章节_第2页
第2页 / 共49页
图形学课件cs52010章节_第3页
第3页 / 共49页
图形学课件cs52010章节_第4页
第4页 / 共49页
图形学课件cs52010章节_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《图形学课件cs52010章节》由会员分享,可在线阅读,更多相关《图形学课件cs52010章节(49页珍藏版)》请在金锄头文库上搜索。

1、第五章 二维变换和裁剪,齐次坐标 二维图形基本几何变换矩阵 Cohen-Sutherland直线裁剪算法 中点分割直线裁剪算法,2,本章内容,5.1 图形几何变换基础 5.2 二维图形基本几何变换矩阵 5.3 二维复合变换 5.4 二维图形裁剪 5.5 Cohen-Sutherland直线裁剪算法 5.8 本章小结 5.9 习题,3,5.1图形几何变换基础,通过对图形进行几何变换,可以由简单图形构造复杂图形。图形几何变换是对图形进行平移变换、比例变换、旋转变换、反射变换和错切变换。图形几何变换可以分为二维图形几何变换和三维图形几何变换,而二维图形几何变换是三维图形几何变换的基础 。,4,5.1

2、 图形几何变换基础,5.1.1 规范化齐次坐标 5.1.2 矩阵相乘 5.1.3 二维变换矩阵 5.1.4 二维几何变换,5,5.1.1 规范化齐次坐标,为了使图形几何变换表达为图形顶点集合矩阵与某一变换矩阵相乘的问题,引入了规范化齐次坐标。 所谓齐次坐标就是用n1维矢量表示n维矢量。 例如:在二维平面中, 点P(x,y)的齐次坐标表示为(wx,wy,w); 在三维空间中, 点P(x,y,z)的齐次坐标表示为(wx,wy,wz,w) 这里,w为任一不为0的比例系数, 如果w1就是规范化的齐次坐标。 二维点P(x,y)的规范化齐次坐标为x,y,1, 三维点P(x,y,z)的规范化齐次坐标为x,y

3、,z,1 定义了规范化齐次坐标以后,图形几何变换可以表示为图形顶点集合的规范化齐次坐标矩阵与某一变换矩阵相乘的形式。,6,二维图形顶点表示为规范化齐次坐标后,其图形顶点集合矩阵一般为n3的矩阵,其中n为顶点数,变换矩阵为33的矩阵。在进行图形几何变换时需要用到线性代数里的矩阵相乘运算。例如,对于n3的矩阵A和33的矩阵B,矩阵相乘公式为:,5.1.2 矩阵相乘,(5-1),7,由线性代数知道,矩阵乘法不满足交换律,只有左矩阵的列数等于右矩阵的行数时,两个矩阵才可以相乘。特别地,对于二维变换的两个33的方阵A和B,矩阵相乘公式为:,类似地,可以处理三维变换的两个44的矩阵相乘问题,8,5.1.3

4、 二维变换矩阵,用规范化齐次坐标表示的二维基本几何变换矩阵是一个33的方阵,简称为二维变换矩阵。,从功能上可以把二维变换矩阵T分为4个子矩阵。其中,是对图形进行比例、旋转、反射和错切变换;,是对图形进行平移变换;,是对图形进行投影变换;,是对图形进行整体比例变换。,(5-2),9,二维几何变换的基本方法是把变换矩阵作为一个算子,作用到变换前的图形顶点集合的规范化齐次坐标矩阵上,得到变换后新的图形顶点集合的规范化齐次坐标矩阵。连接变换后的新图形顶点,就可以绘制出变换后的二维图形,5.1.4 二维几何变换,设变换前图形顶点集合的规范化齐次坐标矩阵为:,变换后图形顶点集合的规范化齐次坐标矩阵为:,1

5、0,二维变换矩阵为:,则二维几何变换公式为,可以写成:,11,5.2 二维图形基本几何变换矩阵,5.2.1 平移变换矩阵 5.2.2 比例变换矩阵 5.2.3 旋转变换矩阵 5.2.4 反射变换矩阵 5.2.5 错切变换矩阵,12,5.2 二维图形基本几何变换矩阵,二维图形基本几何变换是指相对于坐标原点和坐标轴进行的几何变换,包括平移、比例、旋转、反射和错切五种变换。本节以点的二维基本几何变换为例进行讲解。二维坐标点的基本几何变换可以表示成的形式,其中,为变换前点的规范化齐次坐标点,为变换后点的规范化齐次坐标点,T为33的变换矩阵。,(图5.1),13,5.2.1 平移变换矩阵,平移变换是指将

6、坐标点从位置移动到位置的过程,如图 5-1所示。平移变换的坐标表示为:,相应的齐次坐标矩阵表示为:,14,因此,二维平移变换矩阵为:,式中,Tx,Ty为平移参数。,(5-4),15,5.2.2 比例变换矩阵,比例变换是指坐标点相对于坐标原点O,沿x方向缩放Sx倍,沿y方向缩放Sy倍,得到点的过程,如图5-2所示。,图5.2比例变换,16,比例变换的坐标表示为:,相应的齐次坐标矩阵表示为:,因此,二维比例变换矩阵为:,式中,Sx,Sy为比例系数,(5-5),17,比例变换可以改变图形的形状。当SxSy且Sx、Sy大于1时,图形等比放大;当SxSy且Sx、Sy小于1大于0时,图形等比缩小;当SxS

7、y时,图形发生形 变。前面介绍过变换矩阵的子矩阵,是对图形作整体比例变换,关于这一点可以令SxSyS导出,请注意这里s1/S,即s1时,图形整体缩小;0s1时,图形整体放大。,18,5.2.3 旋转变换矩阵,旋转变换是将坐标点相对于坐标原点O旋转一个角度(逆时针为正,顺时针为负),得到点的过程,如图5-3所示。,r,r,图 5-3 旋转变换,对于 点,极坐标表示为:,19,旋转变换的坐标表示为:,相应的齐次坐标矩阵表示为:,因此,二维旋转变换矩阵为:,(5-6),20,式中,为旋转起始角,为旋转终止角。式(5-6)为绕原点逆时针旋转的变换矩阵,若旋转方向为顺时针,角取为负值。,顺时针旋转变换矩

8、阵为:,21,5.2.4 反射变换矩阵,反射变换也称为对称变换,是将坐标点,关于原点或某个坐标轴反射得到,点的过程。具体可以分为关于原点反射、关于x轴反射、关于y轴反射等几种情况,如图5-4所示。,(a)关于原点反射,(b)关于x轴反射,(c)关于y轴反射,图5-4反射变换,22,关于原点反射的坐标表示为:,相应的齐次坐标矩阵表示为:,因此,关于原点的二维反射变换矩阵为:,(5-7),23,同理可得,关于x轴的二维反射变换矩阵为:,同理可得,关于y轴的二维反射变换矩阵为:,(5-8),(5-9),24,5.4 二维图形裁剪,5.4.1 图形学中常用的坐标系 5.4.2 窗口和视区及窗视变换 5

9、.4.3 窗视变换矩阵,5.4.1 图形学中常用的坐标系,计算机图形学中常用的坐标系有用户坐标系、观察坐标系、设备坐标系和规格化设备坐标系等。,1.用户坐标系(User Coordinate ,UC) 用户定义原始图形所采用的坐标系称为用户坐标系。用户坐标系通常根据应用的需要可以选择直角坐标系、圆柱坐标系、球坐标系以及极坐标系等等。图5-17所示为常用的二维和三维用户直角坐标系。,2.观察坐标系(View Coordinate ,VC) 依据观察窗口的方向和形状在用户坐标系中定义的坐标系称为观察坐标系,观察坐标系用于指定图形的输出范围。,观察坐标系,输出结果,3.设备坐标系 (Device C

10、oordinate ,DC) 显示器等图形输出设备自身都有一个坐标系称为设备坐标系,也称为屏幕坐标系。设备坐标系是二维坐标系,原点位于屏幕左上角,x轴垂直向右,y轴垂直向下,基本单位为像素。,4.规格化设备坐标系 (Normalized Device Coordinate ,NDC) 规格化设备坐标系是将设备坐标系规格化到(0.0,0.0)到(1.0,1.0)的范围内而定义的坐标系。规格化设备坐标系独立于具体输出设备。一旦图形变换到规格化设备坐标系中,只要作一个简单的乘法运算即可映射到具体的设备坐标系中。由于规格化设备坐标系能统一用户各种图形的显示范围,故把用户图形变换成规格化设备坐标系中的统

11、一大小标准图形的过程叫作图形的逻辑输出。把规格化设备坐标系中的标准图形送到显示设备上输出的过程叫作图形的物理输出。有了规格化设备坐标系后,图形的输出可以在抽象的显示设备上进行讨论,因而这种图形学又称为与具体设备无关的图形学。,5.4.2 窗口和视区及窗视变换,在观察坐标系中定义的确定显示内容的区域称为窗口。显然此时窗口内的图形是用户希望在屏幕上输出的,窗口是裁剪图形的标准参照物。,在设备坐标系中定义的输出图形的区域称为视区。视区和窗口的大小可以不相同。一般情况下,用户把窗口内感兴趣的图形输出到屏幕上相应的视区内。在屏幕上可以定义多个视区,用来同时显示不同的窗口内的图形信息,图5-21定义了三个

12、窗口内容用于输出,图5-22的屏幕被划分为三个视区,对三个窗口内容进行了重组。,32,5.4.3 窗视变换矩阵,窗口和视区的边界定义如图5-23所示,假定把窗口内的一点P(xw,yw)变换为视区中的一点P(xv,yv)。这属于相对于任一参考点的二维几何变换,变换步骤为:,5-23窗口和视区的定义,窗口,视区,33,1.将窗口左下角点(wxl,wyb)平移到观察坐标系原点,2. 对原点进行比例变换,使窗口的大小和视区大小相等, 将窗口变换为视区,其中,3. 进行反平移,将视区的左下角点平移到设备坐标系的 (vxl,vyb)点,34,因此,窗视变换矩阵为:,代入,Sx和Sy的值,窗视变换矩阵为:,

13、35,写成方程为:,令,则窗视变换的展开式为:,(5-12),36,5.5 Cohen-Sutherland直线裁剪算法,5.5.1 编码原理 5.5.2 裁剪步骤 5.5.3 交点计算公式,在二维观察中,需要在观察坐标系下根据窗口大小对用户坐标系中的二维图形进行裁剪(clipping),只将位于窗口内的图形变换到视区输出。直线的裁剪是二维图形裁剪的基础,裁剪的实质是判断直线是否与窗口相交,如相交则进一步确定位于窗口内的部分。,37,5.5.1 编码原理,Cohen-Sutherland直线裁剪算法是最早流行的编码算法。每条直线的端点都被赋予一组四位二进制代码,称为区域编码(Region Co

14、de,RC),用来标识直线端点相对于窗口边界及其延长线的位置。假设窗口是标准矩形,由上(y=wyt)、下(y=wyb)、左(x=wxl)、右(x=wxr四条边组成,如图5-24所示。延长窗口四条边形成9个区域,如图5-25所示。这样根据直线的任一端点P(x,y)所处的窗口区域位置,可以赋予一组4位二进制区域码RC4RC3RC2RC1。,38,5-24 窗口坐标,5-25 区域编码,为了保证窗口内直线端点的编码为零,编码规则定义如下: 第一位:若端点位于窗口之左侧,即xwxr,则RC2=1,否则RC2=0。 第三位:若端点位于窗口之下侧,即ywyt,则RC4=1,否则RC4=0。,39,5.5.

15、2 裁剪步骤,若直线的两个端点的区域编码都为零,即RC1|RC2=0(二者按位相或的结果为零,即RC1=0且RC2=0),说明直线两端点都在窗口内,应“简取”之。 若直线的两个端点的区域编码都不为零,即RC1&RC20(二者按位相与的结果不为零,即RC10且RC20,即直线位于窗外的同一侧,说明直线的两个端点都在窗口外,应“简弃”之。 若直线既不满足“简取”也不满足“简弃”的条件,直线必然与窗口相交,需要计算直线与窗口边界的交点。交点将直线分为两段,其中一段完全位于窗口外,可“简弃”之。对另一段赋予交点处的区域编码,再次测试,再次求交,直至找到确定完全位于窗口内的直线段为止。 实现时,一般按固

16、定顺序左(x=wxl),右(x=wxr)、下(y=wyb)、上(y=wyt)求解窗口与直线的交点。,40,5.5.3 交点计算公式,对于端点坐标为P1(x1,y1)和P2(x2,y2)的直线,与窗口左边界(xwxl)或右边界(xwxr)交点的y坐标的计 算公式为:,其中,与窗口上边界(ywyt)或下边界(ywyb)交点的x坐 标的计算公式为:,其中,(5-13),5.5.4 例题,裁剪过程,1 对P1P2编码 code(P1)=0001,code(P2)=0100 2 因为code(P1)|code(P2)不等于0,且 code(P1)&code(P2)不等于0,对直线段P1P2不能简取之也不能简弃之,故求交点处理; 3 有code(p1)=0001知P1在窗口左外侧,按左、右、下、上的顺序求出直线段与窗口的左边界的交点为P3,P1P3必在窗口外,可简弃之。 4 对P2P3重复上述处理,求出P1

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

当前位置:首页 > 高等教育 > 大学课件

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