基本图形生成算法优秀PPT.ppt
《基本图形生成算法优秀PPT.ppt》由会员分享,可在线阅读,更多相关《基本图形生成算法优秀PPT.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基本图形生成算法第1页,本讲稿共48页3.2 实区域填充算法 确定待填充的象素,即检查光栅的每一像素是否位于多边形区域内解决的主要问题是什么?图案填充还有一个什么象素填什么颜色的问题曲线围成的区域,可用多边形逼近 第2页,本讲稿共48页点在多边形内的包含性检验检验夹角之和射线法检验交点数第3页,本讲稿共48页检验夹角之和若夹角和为0,则点p在多边形外若夹角和为360,则点p在多边形内ABCDEPABCDEP第4页,本讲稿共48页射线法检验交点数ABCDEPABCDEP交点数=偶数(包括0)点在多边形之外交点数=奇数点在多边形之内zx左闭右开第5页,本讲稿共48页包围盒法凸多边形凹多边形逐点测试
2、效率低不实用怎么办?第6页,本讲稿共48页实区域填充算法分类扫描线填充算法-扫描线顺序有序边表算法边填充算法种子填充算法-内部一个点出发简单种子算法扫描线种子算法第7页,本讲稿共48页扫描线填充算法求交:I4,I3,I2,I1排序:I1,I2,I3,I4交点配对:(I1,I2),(I3,I4)区间填色利用图形的空间连贯性和扫描线的连贯性第8页,本讲稿共48页填充扩大化问题解决方法:取中心扫描线y+0.5检查交点右方像素的中心是否落在区间内 xlx+0.5xryxy012345671234567012345671234567xP1P2P3P4x第9页,本讲稿共48页顶点交点的计数问题 54321
3、0P1P2P3P4I1I2I3I4P5扫描线5扫描线4扫描线3扫描线2扫描线1I5I6检查交于该顶点的两条边的另外两个端点的y值大于该顶点y值的个数 计数0次计数1次计数2次10第10页,本讲稿共48页有序边表算法影响一般扫描线填充算法效率的因素?所有的边和扫描线求交,效率很低。因为一条扫描线往往只和少数几条边相交。如何提高效率?建立每条扫描线的活性边表何谓活性边?求交和排序目标是简化交点计算第11页,本讲稿共48页有序边表算法 与当前扫描线相交的边称为活性边(active edge),把它们按与扫描线交点x坐标递增的顺序存入一个链表中,边的活性边表(AEL,Active edge table
4、)。它记录了多边形边沿扫描线的交点序列。只需对当前扫描线的活性边表作更新,即可得到下一条扫描线的活性边表。第12页,本讲稿共48页有序边表算法如何计算下一条扫描线与边的交点。如何计算下一条扫描线与边的交点。直线方程:ax+by+c=0当前交点坐标:(xi,yi)下一交点坐标:(xi+1,yi+1)xi+1=(-byi+1)-c)/a=(-byi-b)-c)/a=xi-b/a=xi+1/k活动边表中需要存放的信息:x x:当前扫描线与边的交点x x-b/a-b/a:从当前扫描线到下一条扫描线之间的x增量y ymaxmax:边所交的最高扫描线y=yi+1y=yiPjPj+1(xi,yi)(xi+1
5、,yi+1)第13页,本讲稿共48页有序边表算法活性边表的更新为了方便边的活性边表的更新,建立另一个表-新边表,存放在该扫描线第一次出现的边。存放的信息:x:扫描线与该边的初始交点x x:x的增量 y ymaxmax:该边的最大y值新边插入、旧边删除第14页,本讲稿共48页 即算法中采用较灵活的数据结构。它由新边表ET(Edge Table)和活性边表AEL(Active Edge List)两部分组成。表结构ET和AEL中的基本元素为多边形的边。边的结构由以下四个域组成:x:在ET中表示边的下端点的x坐标,在AEL中则表示边与扫描线的交点的坐标;x:边的斜率的倒数;ymax:边的上端点的y坐
6、标;next:指向下一条边的指针。有序边表算法第15页,本讲稿共48页yx0 1 2 3 4 5 6 7 8 9 101112345678P6P4P1P5P2P3新边表8.57.56.55.54.53.52.51.50.5528.5-1.5 711082075-32.533P4P5P5P6P3P4P6P1P1P2P2P3活性边表活性边表5-32.533P1P2P2P3y=1.5207.833P6P1P2P3y=2.5207.1108P6P1P3P4y=3.5528.P4P51108P3P45-1.5 7P5P6207.P6P1y=5.5728.P4P51108P3P43.5-1.5 7P5P6
7、207.P6P1y=6.5928.P4P51108P3P4y=7.5207.1108P6P1P3P4y=4.5第16页,本讲稿共48页step1:把新边表ETi中的边结点,用插入排序法 插入活性边表AET,使之按X坐标递增顺序排序;step2:遍历AET表,把配对交点之间的区间(左闭右开)上的各 象素(X,Y),用drawpixel(x,y,color)改写象素颜色值;step3:遍历AET表,把Ymax=i的结点从AET表中删除,并把 Ymaxi的结果点的X值递增X;step4:重复各扫描线算法:(对每一条扫描线i)第17页,本讲稿共48页有序边表算法优点:对每个像素只访问一次与设备无关缺点
8、:数据结构复杂只适合软件实现第18页,本讲稿共48页边填充算法边填充算法第19页,本讲稿共48页边填充算法边填充算法优点:优点:最适合于有帧缓存的显示器可按任意顺序处理多边形的边仅访问与该边有交点的扫描线上右方的像素,算法简单缺点:缺点:对复杂图形,每一像素可能被访问多次,输入/输出量大图形输出不能与扫描同步进行,只有全部画完才能打印第20页,本讲稿共48页栅栏填充算法栅栏填充算法引入栅栏的目的?引入栅栏的目的?第21页,本讲稿共48页种子填充算法种子填充算法种子填充种子填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。种子种子填充算法要求区域是连通的6754S9328第2
9、2页,本讲稿共48页种子填充算法种子填充算法假设多边形区域内至少有一个像素已知假设多边形区域内至少有一个像素已知区域定义法:区域定义法:Interior-definedBoundary-definedFlood-fill algorithmBoundary-fill algorithm区域连通方式:区域连通方式:4-connected8-connected23第23页,本讲稿共48页区域连通方式对填充结果的影响区域连通方式对填充结果的影响4连通区域边界填充算法的填充结果8连通区域边界填充算法的填充结果第24页,本讲稿共48页简单的种子填充算法简单的种子填充算法(4连通边界)连通边界)种子像素入
10、栈种子像素入栈,当栈非空时,重复以下步骤:当栈非空时,重复以下步骤:(1)栈顶像素出栈栈顶像素出栈(2)将出栈象素置成填充色将出栈象素置成填充色(3)按右、上、左、下顺序检查与出栈象素相邻的按右、上、左、下顺序检查与出栈象素相邻的四象素,若其中某象素不在边界上且未被置成四象素,若其中某象素不在边界上且未被置成填充色,则将其入栈填充色,则将其入栈 第25页,本讲稿共48页填充算法演示填充算法演示6754S9328S247938479484795684796847978479847994794796754S9328S799缺点?第26页,本讲稿共48页4-connected boundary-fi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 图形 生成 算法 优秀 PPT
限制150内