[教育学]图形学第3章.pptVIP

  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文档。上传文档
查看更多
[教育学]图形学第3章

(0,0)_(5,2) K=0.4 (0,0)-(1,0)-(2,1)-(3,1)-(4,2)-(5,2) X=1,y1=y0+k*(x1-x0)=y0+k=0+0.4=0.4 Round(y)=round(0.4)=0 Y2=y1+k=0.4+0.4=0.8 round(y2)=1 ET和AEL中的基本元素为多边形的边。边表示成结点的形式,每个边结点由以下四个域组成: 其中,各符号的含义为: ymax: 边的上端点的y坐标 x:在ET中表示边的下端点的x坐标,在AEL中表示边与扫描线的交点的x坐标 1/k:边的斜率的倒数 next:指向下一条边的指针 当建立了边表ET后,扫描线多边形填充算法可按如下步骤进行: (1)初始化AEL,使之为空,取扫描线纵坐标y的初始值为ET中非空元素的最小序号。 (2)按从下到上的顺序对每条扫描线重复以下各步,直至AEL和ET为空 。 ① 将ET中与当前y有关的结点加入至AEL,同时保存AEL中按x值从小到大实现的排序序列 ② 对于AEL中的扫描线y,在一对交点之间填充所需要的像素值 ③ 从AEL中删掉y=ymax的结点 ④ 对于留在AEL中的每个结点,执行xi+1=xi + 1/k ⑤ 对AEL中的各结点按x值从小到大排序 ⑥ y =y+1,成为下一条扫描线的坐标 3.3.3 边填充算法 基本原理:对每一条扫描线,依次求与多边形各边的交点,将该扫描线上交点右边的所有像素求补。 算法虽然简单易行,但对于复杂图形而言,一些像素的颜色值需反复改变多次,且多边形外的像素处理过多,输入、输出的量比有序边表大的多。 栅栏填充算法: 对于每条扫描线与多边形的交点,将交点与栅栏之间的扫描线上的像素取补,也就是说,若交点位于栅栏左边,则将交点之右、栅栏之左的所有像素取补;若交点位于栅栏右边,则将栅栏之右、交点之左的所有像素取补。 多边形外的像素处理大大减少,被重复取补的像素数目也有减少,但仍有一些像素被重复取补。 边标志算法: 对多边形边界所在像素置一个特殊标志;对于每条与多边形相交的扫描线,从左至右逐个访问该扫描线上的像素。使用一个布尔变量inside来指示当前点的状态,若点在多边形内,则inside为真。若点在多边形外,则inside为假。inside 的初始值为假,每当当前访问像素为被打上标志的点,就把inside取反。对未打标志的点,inside不变。若访问当前像素时,对inside作必要操作之后,inside为真,则把该像素置为多边形要填充的颜色。 对每个像素只访问一次,硬件执行速度快。 3.3.4 种子填充算法 基本思想:假设在多边形区域内部至少有一个像素是已知的(此像素称为种子像素),由此出发找到区域内所有其他像素,并对其进行填充。 由于区域可采用边界定义和内点定义两种方式,区域按连通性又可分为四连通区域和八连通区域两类,所以常用的种子填充算法有: 边界表示的四连通区域种子填充算法 内点表示的四连通区域种子填充算法 边界表示的八连通区域种子填充算法 内点表示的八连通区域种子填充算法 1.边界表示的四连通区域种子填充算法 基本思想:从多边形内部任一点(像素)出发,依“左上右下”顺序判断相邻像素,若其不是边界像素且没有被填充过,对其填充,并重复上述过程,直到所有像素填充完毕。 可以使用栈结构来实现该算法,算法的执行步骤如下: 种子像素入栈,当栈非空时,重复执行如下三步操作: (1)栈顶像素出栈; (2)将出栈像素置成多边形填充的颜色; (3)按左、上、右、下的顺序检查与出栈像素相邻的四个像素,若其中某个像素不在边界上且未置成多边形色,则把该像素入栈。 2.内点表示的四连通区域种子填充算法 基本思想:从多边形内部任一点(像素)出发,依“左上右下”顺序判断相邻像素,如果是区域内的像素,则对其填充,并重复上述过程,直到所有像素填充完毕。它也常称为漫水法。 可以使用栈结构来实现该算法,算法的执行步骤如下: 种子像素入栈,当栈非空时,重复执行如下三步操作: (1)栈顶像素出栈; (2)将出栈像素置成多边形填充的颜色; (3)按左、上、右、下的顺序检查与出栈像素相邻的四个像素,若其中某个像素是区域内的像素,则把该像素入栈。 3.扫描线种子填充算法 算法思想:在任意不间断区间中只取一个种子像素(不间断区间指在一条扫描线上一组相邻元素),填充当前扫描线上的该段区间;然后确定与这一区段相邻的上下两条扫描线上位于区域内的区段,并依次把它们保存起来,反复进行这个过程,直到所保存的每个区段都填充完毕。 可以填充有孔区域

文档评论(0)

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

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

1亿VIP精品文档

相关文档