- 1、本文档共118页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学全套PPT电子课件教案-第5章 基本图形生成算法
3. 改进的有效边表算法(Y连贯性算法) 改进原理: 处理一条扫描线时,仅对与它相交的多边形的边(有效边)进行求交运算 利用扫描线的连贯性(即当前扫描线与各边的交点顺序与下一条扫描线与各边的交点顺序很可能相同或非常相似,在当前扫描线处理完毕后,我们不必为下一条扫描线从头开始构造交点信息。) 利用多边形边的连贯性(即当某条边与当前扫描线相交时,它很可能也与下一条扫描线相交。) 有效边(Active Edge):指与当前扫描线相交的多边形的边,也称为活性边。 有效边表(Active Edge Table, AET):把有效边按与扫描线交点x坐标递增的顺序存放在一个链表中,此链表称为有效边表。 有效边表的每个结点: xymin ymax 1/k next 边表(Edge Table) 边表的构造: (1)首先构造一个纵向链表,链表的长度为多边形所占有的最大扫描线数,链表的每个结点,称为一个桶,则对应多边形覆盖的每一条扫描线。 (2)将每条边的信息链入与该边最小y坐标(ymin )相对应的桶处。也就是说,若某边的较低端点为ymin,则该边就放在相应的扫描线桶中。 (3)每条边的数据形成一个结点,内容包括:该扫描线与该边的初始交点x(即较低端点的x值),1/k,以及该边的最大y值ymax。 x|ymin ymax 1/k NEXT (4)同一桶中若干条边按X|ymin由小到大排序,若X|ymax 相等,则按照1/m由小到大排序。 解决顶点交点计为1时的情形: x|ymin ymax 1/k NEXT 算法步骤: (1)初始化:构造边表,AET表置空; (2)将第一个不空的ET表中的边与AET表合并; (3)由AET表中取出交点对进行填充。填充之后删除y=ymax的边; (4)yi+1=yi+1,根据xi+1=xi+1/m计算并修改AET表,同时合并ET表中y=yi+1桶中的边,按次序插入到AET表中,形成新的AET表; (5)AET表不为空则转(3),否则结束。 5.4.2 边缘填充算法 边缘填充算法 基本思想是按任意顺序处理多边形的每条边。在处理每条边时,首先求出该边与扫描线的交点,然后将每一条扫描线上交点右方的所有象素取补。多边形的所有边处理完毕之后,填充即完成。 算法简单,但对于复杂图型,每一象素可能被访问多次 栅栏填充算法 栅栏指的是一条过多边形顶点且与扫描线垂直的直线。它把多边形分为两半。 基本思想同样是按任意顺序处理多边形的每条边,但在处理每条边与扫描线的交点时,将交点与栅栏之间的象素取补。 边标志算法 分为两个步骤: (1)打标记 (2)填充 当用软件实现本算法时,速度与改进的有效边表算法相当,但本算法用硬件实现后速度会有很大提高。 5.4.3 区域填充 区域是指已经表示成点阵形式的填充图形,它是像素集合。 4-邻接点和8-邻接点 4-连通区域和8-连通区域 把位于给定区域的边界上的象素一一列举出来的方法称为边界表示法。 边界填充算法(Boundary-fill Algorithm)。 枚举出给定区域内所有象素的表示方法称为内点表示。 泛填充算法(Flood-fill Algorithm) 1. 边界填充算法 算法的输入:种子点坐标(x,y),填充色和边界颜色。 栈结构实现4-连通边界填充算法的算法步骤为: 种子象素入栈;当栈非空时重复执行如下三步操作: (1)栈顶象素出栈; (2)将出栈象素置成填充色; (3)检查出栈象素的4-邻接点,若其中某个象素点不是边界色且未置成多边形色,则把该象素入栈。 栈结构实现8-连通边界填充算法的算法步骤为: 种子象素入栈;当栈非空时重复执行如下三步操作: (1)栈顶象素出栈; (2)将出栈象素置成填充色; (3)检查出栈象素的8-邻接点,若其中某个象素点不是边界色且未置成多边形色,则把该象素入栈。 特点: 可以用于填充带有内孔的平面区域。 把太多的象素压入堆栈 改进 通过沿扫描线填充水平象素段,来代替处理4-邻接点和8-邻接点。 沿扫描线填充水平象素段的4-连通边界填充算法步骤: 种子象素入栈;当栈非空时作如下三步操作: (1)栈顶象素出栈; (2)填充出栈象素所在扫描行的连续象素段,直到遇到边界象素为止,即每出栈一个象素,就对包含该象素的整个扫描线区间进行填充; (3)在区间中检查与当前扫描线相邻的上下两条扫描线的有关象素是否全为边界象素或已填充的象素,若存在非边界、未填充边界的象素,则把每一区间的最左象素取作种子象素入栈。 2. 泛填充算法 算法的输入:种子点坐标(x,y),填充色和内部点的颜色。 算法原理: 算法从指定的种子(x,y)开始,用所希望的填充颜色赋给所有当前为给定内部颜色的象素点。 8-
您可能关注的文档
- 编译原理实践及应用PPT教学课件-第6章 运行时存储分配.ppt
- 编译原理实践及应用PPT教学课件-第5章 中间代码生成.ppt
- 编译原理实践及应用PPT教学课件-第7章 代码优化.ppt
- 编译原理实践及应用PPT教学课件-第3章 词法分析.ppt
- 编译原理实践及应用PPT教学课件-第8章 代码生成.ppt
- 绿化景观培训.ppt
- 网络信息传播全套PPT电子课件教案-(4-6章)-课件.ppt
- 网络协议全套PPT电子课件教案- 第九章 TCP协议.ppt
- 网络协议全套PPT电子课件教案- 第六章 IP路由选择协议.ppt
- 网络协议全套PPT电子课件教案- 第四章 ARP和RARP.ppt
- 数字孪生在航空航天企业文化制造领域的2025年实施与效益评估报告.docx
- 2025年Z世代智能家居产品创新趋势与需求分析报告.docx
- 新能源汽车电池技术创新,2025年产业布局与发展趋势报告.docx
- 数字孪生在自动驾驶汽车2025年应用中的实施效果与效益评估报告.docx
- 2025年工业互联网平台G通信技术在低时延高可靠通信中的应用效果评估与市场实施策略报告.docx
- 2025年气候变化下全球农业碳排放控制策略报告.docx
- B2B企业采购决策者需求分析与企业竞争力提升策略.docx
- 民营医院品牌建设与差异化竞争战略研究报告.docx
- 基于物联网的2025年多式联运信息共享平台构建与物流效率提升报告.docx
- 数字孪生在航空航天卫星遥感信息传输系统制造中的实施策略与效益评估报告.docx
文档评论(0)