




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、甘朝华,第六章 二维观察,6.1 二维观察变换 6.2 观察坐标系变换 6.3 窗口到视区的变换 6.4 OpenGL二维观察函数 6.5 裁剪算法 6.6 多边形裁剪 6.7 文字裁剪,第五章所介绍的知识可以完成在世界坐标系中对要显示图形的模型建立,该模型要在图形显示器上显示还需进行一个二维观察变换。 观察变换过程? 世界坐标系观察坐标系图形裁剪,窗口到视区的变换变换视区中的图形到设备坐标系显示。,6.1 二维观察变换,窗口(window): 指为了观察和处理图形对象而在世界坐标系中划出的一个坐标区域。 视区(viewport): 视区是在设备坐标系(屏幕坐标系)中划分出用来显示对应窗口所需
2、显示图形的一个坐标区域。,6.1 二维观察变换,窗口和视区分别被定义在不同的坐标系中,定义坐标系的属性如左、右手系、长度单位、比例尺、大小、位置等均不同。 窗口内图形视区显示: 将二维世界坐标系场景描述映射到设备坐标系的变换处理,即二维观察变换(two-dimensional viewing transformation)。,6.1 二维观察变换,在该变换过程中通常要引入观察坐标系和规范化设备坐标系作为从世界坐标系到设备坐标系的过渡。 观察坐标系(view coordinate): 是观察平面(一般为xoy平面)所在的坐标系,观察平面是从观察者的角度所看到的图形对象映射其影像的平面,相当于照相
3、机的胶片。,在二维观察变换中观察坐标系与世界坐标系是一致的。,6.1 二维观察变换,规范化设备坐标系(Normalized Device Coordinate,NDC): 是计算机图形软件描绘设计对象所用的介质,规范化设备坐标系定义x方向和y方向的变化范围均为01。 采用规范化设备坐标系可使观察变换独立于输出设备。一旦将图形对象变换到规范化设备坐标系,只要对规范化设备坐标系中描述的图形对象做一个简单的乘法即可将其映射到具体输出设备的显示区。,6.1 二维观察变换,二维观察变换流程:,6.1 二维观察变换,二维观察变换流程: 通过改变视区的位置,可在输出设备的不同位置显示图形对象。同样,通过改变
4、视区的大小和比例,可改变显示对象的大小和比例。二维观察流程的设置,为图形的观察提供了灵活的方式,如常用的变焦、整体缩放和漫游效果等。,6.2 观察坐标系变换,在从世界坐标系到观察坐标系的变换中,须经过在世界坐标系中定义观察坐标系,获得观察坐标系变换矩阵,利用该变换矩阵将世界坐标系图形对象的描述变换到观察坐标系,并在世界坐标系中定义窗口这些过程。,6.2 观察坐标系变换,定义观察坐标系的方法: 方法一: 选择世界坐标系的某个位置P0(x0,y0)作为二维观察坐标系的原点,使用世界坐标系的向量V作为观察坐标系 轴的方向。,6.2 观察坐标系变换,定义观察坐标系的方法: 方法二: 在世界坐标系中指定
5、某个位置P0(x0,y0)作为二维观察坐标系的原点,并给定观察坐标系相对于x或y轴的转动角。(可以利用5.5式中经典的旋转变换矩阵来完成2个坐标系间的旋转变换)。,6.2 观察坐标系变换,将观察坐标系叠加到世界坐标系过程: 1)通过平移变换将观察坐标系的坐标原点与世界坐标系重合,即T(-x0,-y0); 2)对观察坐标系的坐标轴进行旋转变换,使2个坐标系的对应坐标轴重合,即R; 3)对象在世界坐标系的顶点坐标与组合的二维变换矩阵相乘变换到观察坐标系。,6.3 窗口到视区的变换,不同的图形系统在处理从窗口到视区的变换方式有所不同。,6.3 窗口到视区的变换,6.3.1 从窗口到视区的一般变换过程
6、,6.3 窗口到视区的变换,二维观察的一种方法是先将窗口图形对象变换到规范化正方形,在规范化坐标系中进行裁剪,然后将场景描述变换到屏幕坐标系中指定的视口中。,6.3.2 窗口到视区的变换,6.4 OpenGL二维观察函数,尽管OpenGL是为三维应用而设计的,但可以利用三维相关函数和指定二维裁剪窗口的函数来实现二维观察。 (不详细描述),6.5 裁剪算法,在二维观察变换中,需要在世界坐标系中对窗口进行裁剪操作。 这一过程的实质就是判断某一图元是否落在裁剪窗口的内部,若落在裁剪窗口之内则需进一步求出位于裁剪窗口内部的部分。,裁剪算法一般应包括2步: (1)判断图元与裁剪窗口之间的位置关系; (2
7、)若图元与窗口边框之间有交点,则确定落在窗口之内的部分,并在显示窗口中仅显示该部分。,6.5 裁剪算法,一般图形系统都包含对点、线段和多边形的裁剪算法,类似的方法也可用于样条曲线和曲面、圆、椭圆及球面等。 而非线性边界对象常可近似地用线段或多边形面表示,因此也可采用类似方法进行裁剪处理。,6.5 裁剪算法,算法 点的裁剪虽然简单,但被经常用于一些如包含云、海面泡沫、烟或爆炸等小圆或小球样的粒子系统建模场合。,6.5.1 二维点裁剪,6.5 裁剪算法,直线段裁剪算法比较简单,但非常重要,是复杂图元裁剪的基础。 常用的线段裁剪方法:Cohen-Sutherland、中点分割算法和梁友栋barske
8、y算法。,6.5.2 二维直线裁剪,6.5 裁剪算法,如前所述裁剪处理的第一步是判断线段与裁剪窗口的位置关系:,6.5.2 二维直线裁剪,6.5 裁剪算法,该算法是最早流行的快速线段裁剪算法,已得到广泛应用。 算法: 1、对于每条线段P1P2按其与窗口间的关系不同分为三种情况处理; 2、使用区域编码法来判断线段2个顶点与窗口之间的关系; 3、求交点、裁剪。,6.5.3 Cohen-Sutherland 裁剪算法,6.5 裁剪算法,又称梁友栋-Barsky算法,此前算法在计算有效交点之前均需进行大量的测试计算。Cyrus和Beck利用参数化方法分析线段的特性给出了线段的裁剪算法,之后梁友栋和Ba
9、rsky分别提出了更快的线段裁剪算法。,6.5.4 Liang-Barsky线段裁剪算法,6.5 裁剪算法,Nicholl-Lee-Nicholl算法(简称NLN算法)根据线段的起点位置不同将窗口及其周边划分为多个区域,然后通过比较线段斜率与窗口划分区域边界线段的斜率大小,确定线段终点落在的区域范围,从而避免对一条直线进行多次裁剪。 NLN算法仅适用于二维裁剪,而Cohen_Sutherland和梁友栋-Barsky线段裁剪算法可方便地扩充到三维领域。,6.5.5 Nicholl-Lee-Nicholl线段裁剪算法,6.6 多边形裁剪,由于多边形是由线段组成的,因此,人们会很自然地提出是否可以
10、用线段裁剪方法来对多边形进行裁剪。? 错误,6.6 多边形裁剪,为了克服采用线段裁剪算法所带来的裁剪后结果不封闭的问题,该算法分别用窗口的4条边进行裁剪,每次使用1个多边形顶点集作为输入条件,用窗口的一条边框来对其进行裁剪并得到1个输出多边形顶点集。,6.6.1 Sutherland-Hodgman多边形裁剪算法,6.6 多边形裁剪,在很多应用中需要对凹多边形进行裁剪,如隐藏面消除等场合。由Weiler和Atherton提出的算法可适用于用任意形状的窗口去裁剪任意形状的多边形,只是具体算法实现较为复杂。,6.6.2 Weiler-Atherton多边形裁剪算法,6.6 多边形裁剪,该算法的基本思想是:从多边形的某一顶点出发,按某种顺序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Teaching with a Strength-Based Approach-How to Motivate Students and Build Relationships (Chapter 7)英汉翻译实践报告
- 胸壁结核护理常规
- 投标文件培训
- 动物会唱歌课件
- 学校食育教育体系构建
- 出境旅游流程标准化指南
- 常见肿瘤疾病症状识别要点
- 大学生健康教育(第2版)
- 颅内压护理课件
- 《机械设计基础》课件-第18章 弹簧
- 渣土清运综合项目施工组织设计
- 苏教版八年级生物下册期末试卷及答案【苏教版】
- 2023年河北语文高考试题
- 书面检查材料(通用6篇)
- 传感器与机器视觉 课件 第六章 机器视觉
- 2019疏浚工程预算定额
- RFC2326(中文版+英文版+可链接目录)-RTSP
- 2023八年级历史下册第六单元科技文化与社会生活第18课科技文化成就说课稿新人教版
- 2023新能源光伏电站检修规程
- 特种作业人员体检表
- 2016电动汽车充换电服务网络运营管理系统通信规约:系统与站级监控系统通信规约
评论
0/150
提交评论