- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 多边形 本章我们将讨论图形系统中新的图元——多边形,研究有关多边形的概念以及多边形的表示,学习如何判断一个点是否在多边形内的方法,以及多边形的各种填充方法,重点讲解种子填充算法。 第4章 多边形 1. 多边形的定义 2. 多边形的扫描转换 3. 区域填充(种子填充算法) 4. 反走样 4.1多边形的定义 定义:一系列首尾相连的线段构成的图形。 线段 -------- 边 端点 -------- 顶点 多边形分为凸多边形、凹多边形二种 计算机生成的物体常常可以用若干多边形来描述,有些非多边形的物体,也可以用多边形来逼近。比如上一章二次曲线的绘制我们了解了可以用多边形去逼近圆。在多边形生成以后,就可以利用光栅显示系统对其内部区域进行填充。 那么多边形是如何在系统中如何描述的呢? 顶点表示 点阵表示 顶点表示:用多边形顶点的序列来刻划多边形。直观、几何意义强、占内存少;缺点是不能直接用于面着色。 点阵表示:用位于多边形内的象素的集合来刻划多边形。便于运用帧缓冲存储器表示图形,易于面着色。缺点是失去了许多重要的几何信息; 4.2多边形的扫描转换 在绘图过程中,仅有线条和多边形来表示是不够的,要逼真的显示一个实面图像至少要解决以下三个问题: 1、面的形状 2、面上各点的色调(填充) 3、各个面的互相遮挡的问题(消隐) 多边形的扫描转换 什么是多边形的扫描转换? 从多边形顶点信息到该多边形点阵表示的转换——多边形的扫描转换,也就是从多边形的给定边界出发,求出位于其内部的各个象素,并给帧缓冲器内的各个对应元素设置相应的灰度和颜色,通常称这种过程为多边形的扫描转换(又称多边形的填充)。 多边形的扫描转换 常用几种方法: 逐点判断法; 扫描线算法; 边填充法; 栅栏填充法; 边界标志法。 逐点判断法(1/7) 算法思想: 逐个象素点判别,确定它们是否在多边形内,从而来决定是否进行着色。 如何判断点在多边形的内外关系? 1)累计角度法(转角和法); 2)射线法; 3)符号法; 逐点判断法(2/7) 1)累计角度法(转角和法) 步骤 1.从某点向多边形顶点发出射线,形成有向角 2.计算有向角的和,得出结论 逐点判断法(3/7) 若夹角和为0,则点p在多边形外 逐点判断法(4/7) 逐点判断法(5/7) 逐点判断法(6/7) 逐点判断法(7/7) B步骤 1、找多边形内一点M代入直线方程,计算M相对于各边的符号情况。 2、对待判定定P作同样的操作 3、对M和P相对于各边的符号情况作比较 逐点判断的算法的优缺点: 虽然程序简单,但不可取。原因是速度太慢,主要是由于该算法割断了各象素之间的联系,孤立地考察各象素与多边形的内外关系,使得几十万甚至几百万个像素都要一一判别,每次判别又要多次求交点,需要做大量的乘除运算,花费很多时间。 改进思想:除边界外,相邻像素几乎都有相同的特征。 扫描线算法 扫描线算法 目标:利用相邻像素之间的连贯性,提高算法效率 处理对象:非自交多边形 (边与边之间除了顶点外无其它交点) 扫描线算法(1/26) 扫描线算法是多边形扫描转换的常用算法。与逐点判断算法相比,扫描线算法充分利用了相邻象素之间的连贯性,避免了对象素的逐点判断和反复求交的运算,达到了减少了计算量和提高速度的目的。 开发和利用相邻象素之间的连贯性是光栅图形算法研究的重要内容。扫描线算法综合利用了区域的连贯性、扫描线连贯性和边的连贯性等三种形式的连贯性。 扫描线算法(2/26) 扫描线算法(3/26) 1)梯形的两底边分别在y=yik和y=yik+1两条扫描线上,腰在多边形P的边上或在显示屏幕的边界上。 2)这些梯形可分为两类:一类位于多边形P的内部;另一类在多边形P的外部。 3)两类梯形在长方形区域{yik,yik+1}内相间的排列,即相邻的两梯形必有一个在多边形P内,另一个在P外。 扫描线算法(4/26) 求出扫描线与多边形的所有交点后,位于多边形内的直线段就不难找到了。 设想我们从扫描线的一端出发,这时我们在多边形外,因为多边形总是在有限范围内的。 当我们沿直线前进到达第一个交点时,就开始进入多边形内。 由于直线的另一端是在多边形外,继续沿直线前进一定会走出多边形内部,因此一定会遇到第二个交点。 这时我们可以看到,第一和第二个交点给出的直线段就位于多边形内。 如果没有更多的交点,则该扫描线上只有一段直线段位于多边形内。 如果继续沿扫描线前进,遇到第三个交点后,重新进入多边形内。类似前面的分析,一定有第四个
您可能关注的文档
最近下载
- Unit 1 Fun numbers and letters (说课稿)-2024-2025学年人教PEP版(一起)(2024)英语二年级上册.docx VIP
- 印刷成本核算方式.docx VIP
- 森林防火教学课件.ppt VIP
- 二级保密资格档案目录(24盒)优质材料.doc VIP
- 2025水利工程五大员专业题库(含答案).docx VIP
- 图书馆业务知识培训ppt课件.pptx VIP
- 传感器智能传感器与无线传感器网络技术.pptx VIP
- 中国共产党基层组织选举工作条例学习宣贯ppt课件.pptx VIP
- 游消费者行为学(第二版)孙九霞全套PPT课件.pptx
- 东芝 e-STUDIO 2000AC 2500AC 彩色复印机维修手册(拆卸安装篇).pdf VIP
文档评论(0)