多边形的扫描转换与区域填充.ppt
《多边形的扫描转换与区域填充.ppt》由会员分享,可在线阅读,更多相关《多边形的扫描转换与区域填充.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年3月3日计算机图形学13.4 多边形的扫描转换与区域填充o多边形扫描转换与区域填充可以统称区域填充,就是如何用颜色或图案来填充一个二维区域。填充主要做两件工作:一是确定需要填充的范围,二是确定填充的内容。一般区域填充指的是已知区域内一个种子,然后由种子向周围蔓延填充规定区域。o方法:n扫描线法:x-扫描线法-有序边表法,边填充算法n种子填充算法(区域填充)第一页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学23.4.1 扫描转换(扫描线)法o多边形的扫描转换:把多边形的顶点表示转换为点阵表示,也就是从多边形的给定边界出发,求出位于其内部的各个象素,并给帧缓冲器内的各个对
2、应元素设置相应的灰度和颜色,通常称这种转换为多边形的扫描转换。o三种方法:n扫描线算法n边填充算法n边界标志法第二页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学3多边形分类o多边形分为凸多边形、凹多边形、含内环的多边形。第三页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学4多边形表示o多边形的表示方法n顶点表示n点阵表示o顶点表示:用多边形顶点的序列来刻划多边形。直观、几何意义强、占内存少;不能直接用于面着色。o点阵表示:用位于多边形内的象素的集合来刻划多边形。失去了许多重要的几何信息;便于运用帧缓冲存储器表示图形,易于面着色。第四页,编辑于星期五:五点 二十分。
3、2023年3月3日计算机图形学53.4.1.1扫描线算法-x扫描线法o扫描线算法n目标:利用相邻像素之间的连贯性,提高算法效率n处理对象:非自交多边形(边与边之间除了顶点外无其它交点)第五页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学6步骤(1)确定多边形所占有的最大扫描线数,得到多边形顶点的最小和最大y值(ymin和ymax)。(2)从y=ymin到y=ymax,每次用一条扫描线进行填充。(3)对一条扫描线填充的过程可分为四个步骤:计算扫描线与多边形各边的交点。对求得的交点进行排序。奇偶配对求出扫描线与多边形的相交区间。对这些相交区间填充色。第六页,编辑于星期五:五点 二十分
4、。2023年3月3日计算机图形学7需要解决的几个问题o扫描线与多边形顶点相交时交点的取舍问题o多边形边界上像素点的取舍问题o水平边的处理o减少求交运算问题第七页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学8需要解决的几个问题(一)一、当扫描线与多边形顶点相交时,交点的取舍问题。解决:当扫描线与多边形的顶点相交时,n若共享顶点的两条边分别落在扫描线的两边,交点只算一个;n若共享顶点的两条边在扫描线的同一边,这时交点作为零个或两个。第八页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学9具体实现时只要检查顶点的两条边的另外两个端点的Y值,两个Y值中大于交点Y值的个数是0
5、,1,2,来决定取0,1,2个交点。第九页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学10 xy213 4 5 6 7 8 9111234567891011121012与多边形顶点相交的交点的处理第十页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学11011110222 与扫描线相交的多边形顶点的交点数第十一页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学12需要解决的几个问题(二)二、边界上象素的取舍问题,避免填充扩大化。解决方法:边界象素:规定落在右上边界的象素不予填充。具体实现时,只要对扫描线与多边形的相交区间实行:左闭右开(左边界像素填充,右
6、边界像素不填充)下闭上开(下边界像素填充,上边界像素不填充)属于谁?第十二页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学13需要解决的几个问题(三)三、水平边的处理(与扫描线重合)将水平边画出后删去,不参加求交,即求交后的操作(但是在计算交点个数时算作一个点)。第十三页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学14需要解决的几个问题(四)o减少求交算法:x-扫描线法在处理每条扫描线时需要与多边形的所有边求交,而实际上一条扫描线往往只与少数几条边相交,因此降低了效率,于是提出了改进算法有序边表法,也称y连贯性算法。第十四页,编辑于星期五:五点 二十分。2023年
7、3月3日计算机图形学153.4.1.2 扫描转换法-有序边表法o该法与x-扫描线法基本过程一样,只是在处理求交计算时作了改进。第十五页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学16改进思路可以从以下方面考虑:1 在处理一条扫描线时,仅对与它相交的边(有效边)进行求交运算,于是可以构造活性边表。2 考虑扫描描线的连贯性,即当前扫描线与各边的交点顺序与下一条扫描线与各边的交点顺序很可能相同或者相似。3 多边形边的连贯性,即当一条边与当前扫描线相交时,它可能也与下一条扫描线相交。第十六页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学17o所有的边和扫描线求交,效率很低
8、。因为一条扫描线往往只和少数几条边相交。如何判断多边形的一条边与扫描线是否相交?o有效边(Active Edge):指与当前扫描线相交的多边形的边,也称为活性边。o有效边表(Active Edge Table,AET):把有效边按与扫描线交点x坐标递增的顺序存放在一个链表中,此链表称为有效(活性)边表。第十七页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学18数据结构与实现步骤o只需对当前扫描线的活动边表作更新,即可得到下一条扫描线的活动边表。第十八页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学19如何计算下一条扫描线与边的交点直线方程:ax+by+c=0当前交点
9、坐标:(xi,yi)下一交点坐标:(xi+1,yi+1)xi+1=(-byi+1)-c)/a=(-byi+1)-c)/a=xi-b/a=xi-1/k活动边表中需要存放的信息:x:当前扫描线与边的交点dx-b/a:从当前扫描线到下一条扫描线之间的x增量xymax:边所交的最高扫描线第十九页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学20数据结构与实现步骤o为了方便边的活化链表的更新,建立另一个表-新边表,存放在该扫描线第一次出现的边。存放的信息:x:扫描线与该边的初始交点dx:x的增量ymax:该边的最大y值第二十页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学21
10、数据结构与实现步骤即算法中采用较灵活的数据结构。它由边的新边表NET(new Edge Table)和边的活性边表AET(Active Edge Table)两部分组成。表结构NET和AET中的基本元素为多边形的边。边的结构由以下四个域组成:ymax:边的上端点的y坐标;x:在NET中表示边的最低点的x坐标,在AET中则表示边与扫描线的交点的坐标;x:边的斜率的倒数;(当前扫描线到下一条扫描线x的增量)next:指向下一条边的指针。第二十一页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学22ymaxx1/m(x)nextymaxx1/m(x)nextAET 活性边表NET 新边表
11、X:边的下端点的x坐标X:边与扫描线的交点的坐标第二十二页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学23第二十三页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学24活性边表的例子34-2P3 P456.50.5P3 P2扫描线2AET指针620P4 P5570.5P3 P2扫描线3AET指针(Y(Ymax,max,x,x,next)x,x,next)36-2P3 P4560.5P3 P2扫描线1AET指针第二十四页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学25活性边表的例子620P4 P557.50.5P3 P2扫描线4AET指针620P4 P
12、578-1P2 P1扫描线5AET指针724P5 P178-1P2 P1扫描线6AET指针第二十五页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学26新边表724P5 P178-1P2 P1620P4 P536-2P3 P4560.5P3 P2(Ymax,x,x,next)第二十六页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学27算法实现步骤 这样,当建立了边的分类表NET后,扫描线算法可按下列步骤进行:(1)取扫描线纵坐标y的初始值为NET中非空元素的最小序号。(2)将边的活化链表AET设置为空。(3)按从下到上的顺序对纵坐标值为y的扫描线(当前扫描线)执行下列
13、步骤,直到边的分类表ET和边的活化链表都变成空为止。第二十七页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学28算法实现步骤o1)如边分类表NET中的第y类元素非空,则将属于该类的所有边从AET中取出并插入边的活化链表中,AET中的各边按照x值(当x值相等时,按x值)递增方向排序。o2)若相对于当前扫描线,边的活化链表AEL非空,则将AET中的边两两依次配对,即1,2边为一对,3,4边为一对,依次类推。每一对边与当前扫描线的交点所构成的区段位于多边形内,依次对这些区段上的点(象素)按多边形属性着色。o3)将边的活化链表AET中满足y=ymax的边删去。o4)将边的活化链表AET剩
14、下的每一条边的x域累加x,即x:=x+x。o5)将当前的扫描线的纵坐标值y累加1,即y:=y+1。第二十八页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学29扫描线算法o特点:算法效率较高。o缺点:对各种表的维持和排序开销太大,适合软件实现而不适合硬件实现。第二十九页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学30扫描线算法o问题:n如何处理多边形的水平边?n如何修改扫描线算法,使它能处理边自交的多边形?第三十页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学313.4.1.3 边填充法o算法简单,但对于复杂图型,每一象素可能被访问多次o算法过程:对于
15、每一条扫描线和每条多边形边的交点(x1,y1),将该扫描线上交点右方的所有像素取补,对多边形的每条边做同样处理,多边形顺序随意,如下图:第三十一页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学32第三十二页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学333.4.1.4 栅栏填充算法栅栏填充算法为了减少重复计算,可采用栅栏算法,栅栏指的是一条过多边形顶点且与扫描线垂直的直线。它把多边形分为两半。第三十三页,编辑于星期五:五点 二十分。2023年3月3日计算机图形学34算法过程o对于每个扫描线与多边形的交点,将交点与栅栏之间的像素取补,若交点位于栅栏左边,则将交点之右
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多边形 扫描 转换 区域 填充
限制150内