用扫描线算法实现多边形填充解析.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于扫描线的区域填充算法 [摘 要] :图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。为此,必须建立图形所描述的场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。计算机图形学的内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法,以及科学计算可视化、计算机动画、虚拟现实等,这里重点研究区域填充。 [关键词] :计算机图形学;区域填充;扫描线算法 第1章? 绪论 1.1研究的背景 在计算机中重现真实世界的场景叫做真实感绘制。真实感绘制的主要任务是模拟真实物体的物理属性,简单的说就是物体的形状、光学性质、表面的纹理和粗糙程度,以及物体间的相对位置、遮挡关系等等。实时的真实感绘制已经成为当前真实感绘制的研究热点,而当前真实感图形实时绘制的两个热点问题则是物体网格模型的面片简化和基于图象的绘制。网格模型的面片简化,就是指对网格面片表示的模型,在一定误差的精度范围内,删除点、边、面,从而简化所绘制场景的复杂层度,加快图形绘制速度。IBR完全摒弃传统的先建模,然后确定光源的绘制的方法。它直接从一系列已知的图象中生成未知视角的图象。这种方法省去了建立场景的几何模型和光照模型的过程,也不用进行如光线跟踪等极费时的计算。该方法尤其适用于野外极其复杂场景的生成和漫游。 1.2研究的主要内容及结构 主要任务是实现多边形区域扫描线填充的有序边表算法,设计相关的数据结构,并将实现的算法应用于任意多边形的填充,区域填充,指的是在输出平面的闭合区域内完整地填充某种颜色或图案。以下所述及的区域填充算法或相关程序,主要针对显示平面内的区域而言。 区域填充的问题一般分两大类,一是多边形填充;一是种子填充;种子填充在学生掌握了“栈”这一抽象数据类型的实现方法的前提下,比较容易完成。而边标志填充算法却是介于这两类之间,部分地具有它们的痕迹,算法思想巧妙,实现起来更容易。多边形填充有一定难度,我们主要对多边形的扫描线算法填充做一些探讨,具体将以五角星为实例。 第2章?? 理论综述 2.1? 区域填充的理论知识 2.1.1 区域填充的概念??????? ??将区域的边界表示转换为区域内部象素表示的过程称为区域填充。区域填充是计算机图形学中的一个基本问题, 在计算机辅助设计、 真实感图形显示、 图像分析等领域有着广泛的应用。区域填充算法是指给出一个区域的边界,要求在边界范围内对所有像素单元赋予指定的颜色代码。目前,区域填充算法中最常用的是多边形填色,常用的多边形填色算法有两种: 一类是种子填充算法, 一类是扫描线填充算法。 研究如何用一种颜色或图案来填充一个二维区域。一般来说,区域的封闭轮廓是简单的多边形。若轮廓线由曲线构成,则可将曲线转换成多条直线段顺连而成,此时,区域轮廓线仍然是一种多边形逼近。   在计算机图形学中,多边形区域有两种重要的表示方法:顶点表示和点阵表示。所谓顶点表示,即是用多边形的顶点序列来表示多边形。这种表示直观、几何意义强、占内存少、易于进行几何变换,但由于它没有明确指出哪些像素在多边形内,故不能直接用于区域填充。所谓点阵表示,则是用位于多边形内的像素集合来刻画多边形。这种表示丢失了许多几何信息,但便于进行填充。   根据区域的定义,可以采用不同的填充算法,其中最具代表性的是:适用于顶点表示的扫描线类算法和适应于点阵表示的种子填充算法。 2.1.2 扫描线算法的描述 扫描线填充算法一般包括四个步骤:求交、排序、交点配对、区域填充。正确求得扫描线与区域填内外轮廓线的交点是算法成败的关键问题。另一方面,采用合适的数据结构又可以简化操作、提高算法的效率。本论文由于采用链表结构记录轮廓线和交点,无需焦点排序的过程,因而提高了算法效率。扫描线来源于光栅显示器的显示原理:对于屏幕上所有待显示像素的信息,将这些信息按从上到下、自左至右的方式显示。 扫描线多边形区域填充算法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。区间的端点可以通过计算扫描线与多边形边界线的交点获得。对于一条扫描线,多边形的填充过程可以分为四个步骤: (1)求交:计算扫描线与多边形各边的交点; (2)排序:把所有交点按x值递增顺序排序; (3)配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间; (4)填色:把相交区间内的象素置成多边形颜色; 2.2? 数据结构与算法

文档评论(0)

119220 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档