计算机图形学教学资料6.ppt
《计算机图形学教学资料6.ppt》由会员分享,可在线阅读,更多相关《计算机图形学教学资料6.ppt(60页珍藏版)》请在第壹文秘上搜索。
1、边缘填充算法n思路思路:利用求余运算代替交点排序、配对、构造填充区间。n原理原理:象素点颜色值经过偶数次求余运算后保持不变,经过奇数次求余运算后变为其余数。n算法算法:1.以扫描线为中心的边缘填充算法2.以边为中心的边缘填充算法以扫描线为中心的边缘填充算法基本思想基本思想:对于每一条扫描线和每条多边形边的交点(xi,yi),将该扫描线上交点右方的所有象素取补.对多边形的每条边做此处理,边的顺序随意。以扫描线为中心的边缘填充算法0 x1x2x3x向右求余从0)(xa(1)先将当前扫描线上的所有象素着上指定颜色的补色(2)当前扫描线上的各交点依次将右方的象素颜色取补色以扫描线为中心的边缘填充算法向
2、右求余从0)(xa0 x1x2x3x以扫描线为中心的边缘填充算法向右求余从1)(xb0 x1x2x3x以扫描线为中心的边缘填充算法向右求余从1)(xb0 x1x2x3x以扫描线为中心的边缘填充算法向右求余从2)(xc0 x1x2x3x以扫描线为中心的边缘填充算法向右求余从2)(xc0 x1x2x3x以扫描线为中心的边缘填充算法0 x1x2x3x向右求余从3)(xd以扫描线为中心的边缘填充算法0 x1x2x3x向右求余从3)(xd以扫描线为中心的边缘填充算法对各条扫描线循环上述处理过程。以边为中心的边缘填充算法原始多边形以边为中心的边缘填充算法初始化:将绘图窗口的背景色置为多边形颜色的补色以边为
3、中心的边缘填充算法对非水平边上的每个象素点向右求余以边为中心的边缘填充算法以边为中心的边缘填充算法以边为中心的边缘填充算法优点:优点:与扫描线算法相比,边缘填充算法的数据结构和程序结构简单。缺点:缺点:但该算法需要对帧缓存的大量象素反复赋值,速度较慢。边缘填充算法特点栅栏填充算法栅栏:栅栏:一条与扫描线垂直的直线,过多边形的某个顶点,并把多边形分为左右两半。基本思想基本思想:对于每条扫描线与多边形边的交点,仅将交点与栅栏之间的象素取补.栅栏填充算法0 x1x2x3x向左求余从0)(xa将当前扫描线上的所有象素着上指定颜色的补色0 x1x2x3x向左求余从1)(xa栅栏填充算法0 x1x2x3x
4、向左求余从2)(xa将当前扫描线上的所有象素着上指定颜色的补色栅栏填充算法0 x1x2x3x向右求余从3)(xa将当前扫描线上的所有象素着上指定颜色的补色栅栏填充算法边标志填充算法(1)n原理:当一条直线穿越多边形时,其上各点针对多边形的归属状态将交替变化;若点在多边形外,则在直线与多边形相交一次后,点在多边形内;边标志填充算法(2)n算法步骤:n第一步:多边形各边界线段经扫描转换过程后,对应象素打上边标志;n第二步:对每一扫描线,由左至右逐点访问:每访问到标志点,则进行一次多边形内/外部的转换,直至扫描线末。对判别为多边形内部的象素点进行填充;n第三步:第二步循环至扫描结束。n优点:边标志算
5、法进一步改进了栅栏算法,使得算法对每个象素仅访问一次,用硬件实现时速度优势更明显。扫描线算法:扫描线算法:对每条扫描线,首先计算它与扇形区域边界的交点,再把配对交点之间的像素用指定颜色填充。Filling Ellipse Arcs 区域(种子)填充是指先将区域内的一点(种子点)赋予给定颜色,然后将颜色扩充到整个区域内的过程(染色过程).n区域:已经表示成点阵形式的象素集合,具有相同颜色.n与多边形扫描转换的比较n基本思想n边界要求n基于的条件区域填充(种子填充算法)n区域的两种表示:内点表示、边界表示.v边界表示:给位于边界上的所有象素着同一种颜色(特征值),而区域内着不同的颜色.区域的表示v
6、 内点表示:给区域内所有象素都着上同一种颜色 (特征值),边界上pixel着不同的颜色.种子填充算法要求:区域具有一定的连通性:4连通或8连通。4连通区域连通区域:取区域内任意两点,在该区域内(不能通过区域外的点),若从其中一点出发,通过上、下、左、右 四种运动可到达另一点时,则称该区域为4连通区域.区域连通性(区域连通性(1)4连通运动方向8连通运动方向区域连通性(区域连通性(2)区域连通性(区域连通性(3)边界连通性边界连通性:4连通区域虽可看作是8连通区域,但其作4连通区域或是8连通区域时其边界边界不同。区域连通性(区域连通性(4)允许从4个方向搜索下一个象素的填充算法称为是四向填四向填
7、充算法充算法.允许从8个方向搜索下一个象素的填充算法称为是8向填向填充算法充算法.种子填充算法种子填充算法n递归填充算法递归填充算法n扫描线算法扫描线算法算法思想算法思想:设G为一内点表示的区域,(x,y)是G内一点,以(x,y)为种子点,先将(x,y)置为newcolor,然后对(x,y)的4(或8)领域进行递归处理递归处理,逐步将整个区域G置为newcolor.(1)递归算法void FloodFill4(int x,int y,int oldColor,int newColor)if(GetPixel(x,y)=oldColor)PutPixel(x,y,newColor);FloodF
8、ill4(x,y+1,oldColor,newColor);FloodFill4(x,y-1,oldColor,newColor);FloodFill4(x-1,y,oldColor,newColor);FloodFill4(x+1,y,oldColor,newColor);Algorithm12345678910111213141516171819202122Example:优点优点:算法原理和程序都很简单缺点:缺点:效率不高,原因是递归次数太多,区域内的每个象素都引起一次递归,即系统堆栈的一次进出操作,费时费内存。递归算法思想:(1)填充并确定种子点所在的区段;(2)将种子区段压栈;(3)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 教学 资料