广工数媒计算机图形学之基本图形生成算法多边形扫描转换及区域填充培训教案.pptVIP

广工数媒计算机图形学之基本图形生成算法多边形扫描转换及区域填充培训教案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广工数媒计算机图形学之基本图形生成算法多边形扫描转换及区域填充培训教案

计算机图形学基础:基本图形生成算法——多边形扫描转换及区域填充 广东工业大学机电学院图学与数字媒体工程系 计算机图形学基础 多边形扫描转换及区域填充 广东工业大学机电学院图学与数字媒体工程系 计算机图形学一个重要问题是在一个区域的内部填上不同的图案、灰度或色彩。 计算机图形学领域所说的区域分为两类:一类是以顶点和边界界定的多边形;一类是以像素点阵(即多边形内部的像素的集合)表示的区域。 通常用确定穿越多边形区域的扫描线的覆盖区域的方法来填充多边形。 用从给定的位置开始涂描直到指定的边界条件为止的方法来填充以像素点阵表示的区域。 区域的表示法 以多边形定义的区域用多边形的顶点序列来定义边界。这种方法直观,几何意义强,占用内存小。但是由于没有明确位于多边形内部的像素集合,所以不能直接用于面着色。 点阵表示用位于多边形内部的像素的集合来刻画多边形。这种表示法失去了多边形重要的几何信息(如顶点、几何边界等),但便于用帧缓存表示图形,是面着色所需要的图形表示形式。 区域的表示法 大多数的图形系统采用顶点序列表示多边形。为解决这种表示法“没有明确位于多边形内部的像素集合,所以不能直接用于面着色”的问题,需要有从多边形顶点表示到点阵表示的转换。这种转换称为多边形扫描转换。 多边形扫描转换即多边形的填充,需要从多边形的顶点信息出发,求出位于多边形内部的各个像素点,并将其颜色写入帧缓存的相应单元中。 二维多边形的扫描转换是三维立体面着色的基础。 多边形扫描转换——x-扫描线算法 x-扫描线算法填充多边形基本思路: 扫描线与x轴平行。按照扫描顺序,计算每一条扫描线与多边形的相交区间,用指定颜色显示区间内的像素。区间的端点可以通过计算扫描线与多边形边界线的交点获得。 x-扫描线算法可以填充凸、凹多边形,也可填充中间有空的多边形。 多边形扫描转换——x-扫描线算法 算法的实现步骤: 一、确定多边形所有顶点的ymax和ymin,得到扫描的范围和最大扫描线数; 二、求交:扫描线与多边形各边求交点,并确定交点的有效性; 三、排序:将所有有效交点按x坐标的大小排序; 多边形扫描转换——x-扫描线算法 算法的实现步骤: 四、交点配对:奇数序号和偶数序号的交点配对; 五、区间填色:将位于一对交点之间的像素置换成指定颜色。 多边形扫描转换——x-扫描线算法 扫描线y=5与AB边有无效交点k,在做求交运算之前,判断该扫描线的y坐标不在点A和点B的y坐标之间,不做求交运算。 x-扫描线算法涉及的问题: 一、扫描线与多边形边界交点的有效性判别; 多边形扫描转换——x-扫描线算法 x-扫描线算法涉及的问题: 二、扫描线与多边形顶点相交时交点的取舍问题; 情况1、共享顶点的两条边分别落在扫描线两侧时,交点记为1个。 情况2、共享顶点的两条边位于扫描线同侧,交点记为0个或2个。 “X-扫描线算法填充.SWF”演示x-扫描线算法实现的过程。 填充算法——边缘填充算法 边缘填充算法的基本思想是逐边向右求补。可以按任意顺序处理多边形的每一条边。在处理每一条边时,首先求出该边与扫描线的交点,然后将每一条扫描线上交点右方的所有像素点取补(若这些点为背景色,则置换为填充色;若这些点为填充色,则置换为背景色)。 多边形的所有边处理完毕后,填充完成。 “边缘填充算法的过程.SWF”演示了边缘填充算法的实现过程。 该算法的优点是简单,缺点是对于复杂图形,每一像素可能要访问多次,效率降低。 填充算法——边缘填充算法 边标志算法是边缘填充算法的优化实现。 边标志算法的实现步骤: 一、边标记。首先对多边形的每一条边进行直线的扫描转换,然后给扫描转换后得到的像素添加边标记。 二、点标记。对每一个像素使用一个布尔值inside指示当前状态,inside初值为false。每条扫描线依从左到右的顺序扫描。遇到被标记过的点后, inside值取反,直至遇到下一个被标记点为止。 填充算法——边标志填充算法 边标志算法的实现步骤: 三、填充。至下而上完成扫描后,将所有inside值为true的像素点集的颜色置换为填充色,完成多边形填充。 “边标志.SWF”演示了边标志算法实现的过程。 填充算法——边标志填充算法 区域填充 区域填充针对以像素点阵(即多边形内部的像素的集合)表示的区域的填充。 区域填充的思路为:从区域内的一个点(种子点)开始,由内向外将填充色扩展到整个区域。 区域填充 与区域填充相关的概念: 边界表示——把位于边界的像素一一列举出来,即区域边界上的像素用同一种颜色着色。 4-连通区域和8-连通区域——确定了区域内点的邻接方式。 4-邻接点 8-邻接点 以4-邻接点定义的区域称为4-连通区域;以8-邻接点定义的区域称为8-连通区域。 与区域填充相关的概念: 栈——栈是一种数据项按序排列的数据结构,只能

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档