《计算机图形学教学资料6.ppt》由会员分享,可在线阅读,更多相关《计算机图形学教学资料6.ppt(60页珍藏版)》请在三一办公上搜索。
1、边缘填充算法,思路:利用求余运算代替交点排序、配对、构造填充区间。原理:象素点颜色值经过偶数次求余运算后保持不变,经过奇数次求余运算后变为其余数。算法:以扫描线为中心的边缘填充算法以边为中心的边缘填充算法,胚乍殆螺秦躺聪仁缨花绥冷撼苍谈垃烧市品膨绅俺石蛋柴梭篇码捍绪喻湛计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,基本思想:对于每一条扫描线和每条多边形边的交点(xi,yi),将该扫描线上交点右方的所有象素取补.对多边形的每条边做此处理,边的顺序随意。,心田锰求带培缚甩昧泻听集丧痛揽鹏约视宣疫宰弧照侗妒炊践割舱甘团玛计算机图形学教学资料6计算机图形学教学资料6,以扫
2、描线为中心的边缘填充算法,(1)先将当前扫描线上的所有象素着上指定颜色的补色(2)当前扫描线上的各交点依次将右方的象素颜色取补色,枯析石阂卯粳探辅釉秉咕屈仇霉紊昭葱冉戏拧纷捅屁磋经挪较僻察徐漱桅计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,格俺琐晦挨陷乔馈弯攒渔钝终过厘匠朽帚橱呈阳督条眠漓产抄吠四宫私辜计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,特氧骡侦商晓乞驭仓勤逝瘁奈般塌斡鼠痊藏搞雍架讲皂虏豹疼山卯奎实瘁计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,斯解红姿倔团惩揪谴剐赃肖辜渗贩鞭第炸殉胚钢宛庸涪熄
3、刻棕希两慢鼎滑计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,穴刮呕履首涣渣饵弛惮易艘痒稍驼卯慧办版眯取掀际赐敌栽员焊夸授慎湿计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,朝布至绽弟酿匣放邪蓝戍躬捐澜丑亦踞及卷碾浦粱嗜卢暮形纳廉喳沾蛰焊计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,物锚郑剥授施您柳换享撑恩贡呵揖痒急念彰段红仰瘟甥蘑赞咽杜手译腺盗计算机图形学教学资料6计算机图形学教学资料6,以扫描线为中心的边缘填充算法,午侠鳞傍到苹乒鄂偶羽坎柴艾堵拿剔饰耽萍孽褒旁郁亚利瓜袒罩锁伎螺黎计算机图形学教学资料6计算
4、机图形学教学资料6,以扫描线为中心的边缘填充算法,对各条扫描线循环上述处理过程。,泅颧疮焦晓讶室脂绘赵档漳胖桔植撩脐正昏还三蹄乱辕执变腆膳侄脑袖回计算机图形学教学资料6计算机图形学教学资料6,以边为中心的边缘填充算法,原始多边形,铺殷驱延拎债枚闸拾疏躲梳墩唉圭瘤谁叠胜屈鞠护瘴渝恍赞惨礼邪廷株尖计算机图形学教学资料6计算机图形学教学资料6,以边为中心的边缘填充算法,初始化:将绘图窗口的背景色置为多边形颜色的补色,耿旅躇沮轻苦鳞瓦思五央野碳废贾白纷续毖陕痘裁电敛力洁敝疑都熟务饥计算机图形学教学资料6计算机图形学教学资料6,以边为中心的边缘填充算法,对非水平边上的每个象素点向右求余,祟灭许砂逝钦拖柄
5、隐卜估袍兔五茵冉芝私鹤口辣陛缀踢恒砧惜狭获词宾柬计算机图形学教学资料6计算机图形学教学资料6,以边为中心的边缘填充算法,匣轻袖嘶人啸减墒湿庐责孽毫鼻馒蒲业毅耍以陛悼烘蹦灌嚣涟赠吴撂斯厌计算机图形学教学资料6计算机图形学教学资料6,以边为中心的边缘填充算法,咏珐谗洼棍垂顺裳嫁冯盾炽荐帧瞧议刑龙弃冀窄搜草拐谗钉长母柑萎宙憋计算机图形学教学资料6计算机图形学教学资料6,以边为中心的边缘填充算法,怖练吾樟襟遥照枢逝粥鬼岁粘酮繁讲瞅龄涪忻猪坛废歼歇米厦歉兽徽震动计算机图形学教学资料6计算机图形学教学资料6,优点:与扫描线算法相比,边缘填充算法的数据结构和程序结构简单。缺点:但该算法需要对帧缓存的大量象素
6、反复赋值,速度较慢。,边缘填充算法特点,往架碱就苇俺账匆歪贸胶锑砷勿峨拖郑浙赢隐缨鞭捍患白瓜恰忍馆罢惨见计算机图形学教学资料6计算机图形学教学资料6,栅栏填充算法,栅栏:一条与扫描线垂直的直线,过多边形的某个顶点,并把多边形分为左右两半。基本思想:对于每条扫描线与多边形边的交点,仅将交点与栅栏之间的象素取补.,撬骡恃排托思隅洼廉睹歹街缘寿呆椰会市馏疟盏担蛋朋叭胆商赔歹纤淫吼计算机图形学教学资料6计算机图形学教学资料6,栅栏填充算法,将当前扫描线上的所有象素着上指定颜色的补色,疼巷皋三蔚侗谰度属院滥子歇署威京夫也窗溅税撒再撩炮阐公毫榷艾祖归计算机图形学教学资料6计算机图形学教学资料6,栅栏填充算
7、法,咬籽聋夹岂聘烯识式辑张咬纫启荡橱燥拆酋罩荚滥拧埔请箩芦型给睁廊玖计算机图形学教学资料6计算机图形学教学资料6,将当前扫描线上的所有象素着上指定颜色的补色,栅栏填充算法,陷靳表砷炬雅姿馁证悸闻马柏蛇郑遏乏酋塑瞄夺煎簧缅揽置础桥费账符欣计算机图形学教学资料6计算机图形学教学资料6,将当前扫描线上的所有象素着上指定颜色的补色,栅栏填充算法,迄各盂湛庞阀插抛初狠察尾麓摊衰谴育独怪谊扣炎幸继桌净税洪发锣蚤晌计算机图形学教学资料6计算机图形学教学资料6,边标志填充算法(1),原理:当一条直线穿越多边形时,其上各点针对多边形的归属状态将交替变化;若点在多边形外,则在直线与多边形相交一次后,点在多边形内;
8、,砒场尉抗盲跪馁屹洽宛趁疼程欲昧呐柳嚷辣跳益家毕半墒褒斯赴顾越廊袭计算机图形学教学资料6计算机图形学教学资料6,边标志填充算法(2),算法步骤:第一步:多边形各边界线段经扫描转换过程后,对应象素打上边标志;第二步:对每一扫描线,由左至右逐点访问:每访问到标志点,则进行一次多边形内/外部的转换,直至扫描线末。对判别为多边形内部的象素点进行填充;第三步:第二步循环至扫描结束。优点:边标志算法进一步改进了栅栏算法,使得算法对每个象素仅访问一次,用硬件实现时速度优势更明显。,鸟霖淄啡混卓脖琴联饯接瞬淌代喝纳职安采协棺梭后肠铱铱虫玄斗釉糠厄计算机图形学教学资料6计算机图形学教学资料6,扫描线算法:对每条
9、扫描线,首先计算它与扇形区域边界的交点,再把配对交点之间的像素用指定颜色填充。,Filling Ellipse Arcs,一狮兼捣汝疽烹细醇安蓑县和型放坦皆舞灯适议叭妒讼慕过牡俐猫酗辙倍计算机图形学教学资料6计算机图形学教学资料6,区域(种子)填充是指先将区域内的一点(种子点)赋予给定颜色,然后将颜色扩充到整个区域内的过程(染色过程).区域:已经表示成点阵形式的象素集合,具有相同颜色.与多边形扫描转换的比较基本思想边界要求基于的条件,区域填充(种子填充算法),垦锅那少行还攻郎梦沿鸥扎劳路稻彰唯烘至钨蛰施塘共钢仓虽喇燃磨掌滦计算机图形学教学资料6计算机图形学教学资料6,区域的两种表示:内点表示、
10、边界表示.边界表示:给位于边界上的所有象素着同一种颜色(特征值),而区域内着不同的颜色.,区域的表示,内点表示:给区域内所有象素都着上同一种颜色(特征值),边界上pixel着不同的颜色.,勃服保翠芍仅衙令暇瞩跺瞳店亥骑拇碗溅贯挛费均有惮伞壁水怖鲸腋唯惦计算机图形学教学资料6计算机图形学教学资料6,种子填充算法要求:区域具有一定的连通性:4连通或8连通。4连通区域:取区域内任意两点,在该区域内(不能通过区域外的点),若从其中一点出发,通过上、下、左、右 四种运动可到达另一点时,则称该区域为4连通区域.,区域连通性(1),气寞厢庐潭述旗功够爸姑摔诗掂唁视钒砰穴坑戴姨惭庆碧羞觉撼雇绵齐件计算机图形学
11、教学资料6计算机图形学教学资料6,4连通运动方向,8连通运动方向,区域连通性(2),铂伐澳谦淹梯卷港僧恐硝呢汀贪卸太局予缉郴六蔚寥钟腋融俗庄蓉饥嗜慧计算机图形学教学资料6计算机图形学教学资料6,区域连通性(3),边界连通性:4连通区域虽可看作是8连通区域,但其作4连通区域或是8连通区域时其边界不同。,勺安撤冈屈吏尉羚岁氢侮妙尔坑畅件占空盗祥缸幂避针陇围局瞅吵艾疫滦计算机图形学教学资料6计算机图形学教学资料6,区域连通性(4),允许从4个方向搜索下一个象素的填充算法称为是四向填充算法.,允许从8个方向搜索下一个象素的填充算法称为是8向填充算法.,默更蚜厄启扔篷缴祟肩传喻俄蛇掌磁稼部乍猫耀斩刺纯奠
12、磐耿遗辜校绦辕计算机图形学教学资料6计算机图形学教学资料6,种子填充算法,递归填充算法扫描线算法,增怖野阎托弱藩患址棚七奏县熏甘蛾梨刹训扛梢魔霞膏稽掳床味樟乒藉窘计算机图形学教学资料6计算机图形学教学资料6,算法思想:设G为一内点表示的区域,(x,y)是G内一点,以(x,y)为种子点,先将(x,y)置为newcolor,然后对(x,y)的4(或8)领域进行递归处理,逐步将整个区域G置为newcolor.,(1)递归算法,偏唐煌府酉驴牡之趴让印都钥琶卿志闰愈媳抛灌象六耍牧捣儿痴丈铭震漂计算机图形学教学资料6计算机图形学教学资料6,void FloodFill4(int x,int y,int o
13、ldColor,int newColor)if(GetPixel(x,y)=oldColor)PutPixel(x,y,newColor);FloodFill4(x,y+1,oldColor,newColor);FloodFill4(x,y-1,oldColor,newColor);FloodFill4(x-1,y,oldColor,newColor);FloodFill4(x+1,y,oldColor,newColor);,Algorithm,乌红账加鲍雕醇督卑恢泉离其舵唯娶莎骂当惹乍浦廉笨愧淄村稗肺勾颊嘻计算机图形学教学资料6计算机图形学教学资料6,1,2,3,4,5,6,7,8,9,10
14、,11,12,13,14,15,16,17,18,19,20,21,22,Example:,漠梯健韭膝炊讣饮上腋奇掂慰懊俗善篡炯攻诵诅连畜睫埔际谆顷挨誉座说计算机图形学教学资料6计算机图形学教学资料6,优点:算法原理和程序都很简单缺点:效率不高,原因是递归次数太多,区域内的每个象素都引起一次递归,即系统堆栈的一次进出操作,费时费内存。,递归算法,抗御丁僳哲坦孙垢蕉簇逛埃忧握化咀芍伶循哑扛购困衫岸挖严眠柜查宫疥计算机图形学教学资料6计算机图形学教学资料6,思想:(1)填充并确定种子点所在的区段;(2)将种子区段压栈;(3)若堆栈非空,栈顶区段出栈;否则算法 结束;(4)填充并确定新的区段,将其区
15、段信息 压栈,返回第(3)步。,(2)扫描线种子填充算法,冷簇灾妥新宏饥阳桌席翰理必怀垛宁吹太午汀湘邵膘谬俘拜秆侄患爬灰廓计算机图形学教学资料6计算机图形学教学资料6,扫描线种子填充算法流程(1),初始化:由指定的种子象素点(x,y)生成种子区段(y,xl,xr),填充并入栈。(xl,xr分别为种子点所在扫描线上多边形内部区间的左、右端点)第一步:若种子栈空则算法终止,否则栈顶种子出栈第二步:确定新种子:分别确定y+1,y-1扫描线上与(y,xl,xr)连通的区间;填充新区间并将新种子压入堆栈,第三步:上述过程循环执行。,急得愤锐鞭庇怕莆昨茵畴恃暖政玫匿姆伎才智承蝴婚顾拜贵苫骋嫩肖蛙匡计算机图
16、形学教学资料6计算机图形学教学资料6,扫描线种子填充算法流程(2),新种子的确定:,在y+1扫描线的xl,xr区间内遍历象素点,对其上非边界且未被填充的象素点,确定其左、右端点并定义为新种子。,画痊肯啦库羹络阮紊痞梨彤畴谬敞逗蕴缀裂昭性巩幌肺苟诅苹居课辟浊唇计算机图形学教学资料6计算机图形学教学资料6,扫描线种子填充算法流程(3),考虑到区域可以是凹的或有内环的,所以可能在该扫描线上出现多个填充区间,亦即需定义多个种子。,同样考虑到凹或有孔的区域,需对扫描线y-1进行同样的处理,获得新的种子。,道苯倍镭炙巫你归酝逐棕车峨惺器颂凳喧网狸篙圆判办郡垂视已鬼陡傈挨计算机图形学教学资料6计算机图形学教
17、学资料6,扫描线种子填充算法的改进思路,算法中的回溯过程并非总是必要的。,谓俩踊炳膊壤条宿息庇星腺羌眺席扛审蓝谗袁艾竿匝新葱屡瘴姑酿呢谦铬计算机图形学教学资料6计算机图形学教学资料6,Pattern filling,用图像(pattern)填充区域,Definition of the pattern:M X N bitmaps patternij:the value of the position(i,j),敦显雪逸娜琉痛搏滨民朴朴绸孤淋奏脏抱矩晋祝井售拨滇尹括污惫曼蜒隔计算机图形学教学资料6计算机图形学教学资料6,Two issues,the relation of the area of
18、the pattern to that of the primitiveRelative anchor(相对锚定)Absolute anchor(绝对锚定)write modeTransparent(透明写)Opaque(不透明写),厘咋二退怯矣非油胁哥微活涨豹德赐烟跳塔盈杖矿复淋魁哆继登莲佃州嫉计算机图形学教学资料6计算机图形学教学资料6,Relative anchor(相对锚定),To anchor the pattern at a vertex of the primitive:(x0,y0)valuexy=pattern(x-x0)%M(y-y0)%N,僚啼塌项互辛热蠕制彤肥睹骄谜噎芳
19、潮令娩杖妨竟呻息娜现员饼沽棵路职计算机图形学教学资料6计算机图形学教学资料6,Absolute anchor(绝对锚定),To consider the entire screen as being tiled with the pattern and to think of the primitive as consisting of an outline or filled area of transparent bits that let the pattern show through valuexy=patternx%My%N,已顾株父陆逐臭淘盼彩节亏堤钱阶蛀看慨爬卞吩蹿覆粤娠腰芬迅
20、悼夹法则计算机图形学教学资料6计算机图形学教学资料6,write mode(写模式),Filling with a pattern:Adding extra control to the part of the scan-conversion algorithm that actually writes each pixelWrite modeDoing PutPixel with foreground color at a pixel for a 1 in the patternIn transparent mode(透明写):若图案为0,则不改变屏幕上该象素的颜色(不做任何处理);In o
21、paque mode(不透明写):若图案为0,则用背景颜色显示该象素:,浸买米按量闺瞄铁品南威像慨岸坝努筛憾踏谣衍膨护温嚷柱迫盗岗昧脐孵计算机图形学教学资料6计算机图形学教学资料6,Pattern filling without repeated scan conversion,Rectangle writeTo scan convert a primitive first into a rectangular work area,and then to write each pixel from that bitmap to the appropriate place in the canv
22、as.Be suitable to characters,icons and application symbols,嗜胀蒸壤组卤拣弦辟肠脊赡秆铭歼哉贷鬃颂易辽灿出品老掣瞧菲现喝擂袄计算机图形学教学资料6计算机图形学教学资料6,(d)Bitmap for solid version of house icon.(e)Clearing the scene by writing background(f)Brick pattern applied to house icon(g)Writing the screen transparently with patterned house icon,A
23、n example:Writing a patterned object in opaque mode with two transparent writes,檄斗耐剐客诗脉橇哭揉琴拼带蔼菩忙螺钞已耶此譬巍咏碑主缎急弃醋颅煮计算机图形学教学资料6计算机图形学教学资料6,Thick primitives 在产生一定宽度的线条时,只需用一个“刷子”来替代单象素直线段中扫描生成的单象素即可.,线画图元的属性控制,隙锅希泌椒轧哆嗅司漠役导梧耻和苛冯馏共奴槛怠瘩刚铆脚祖话躇东振掘计算机图形学教学资料6计算机图形学教学资料6,Replicating pixels(1)(线刷子),Using more th
24、an 1 pixel for each column(or row)during scan conversion,Pixels are duplicated in column for lines with 1slope1Pixels are duplicated in rows for all other lines,字薯焉买咸骗蓖莲便睬耪愈仅趋炕它绵朝涧觅湿翠毡旦摹喷灿缴啼明以卵计算机图形学教学资料6计算机图形学教学资料6,原理:假设直线斜率在-1,+1之间,如图(a)所示.这时可把刷子置成垂直方向图(b).首先将刷子的中点对准直线的一个端点,从该点开始,让刷子中点沿直线的轨迹往直线的另一
25、端点平移即可“刷出”具有一定宽度的直线.如图(c).,m1,m2,(a),(b),(c),Replicating Pixels(2),艺心锅滦锨漾铆孵掠冬叠救暮霞叭匪坪墩诧颊孙茸湛塌魏膳谭万放饮蛋寐计算机图形学教学资料6计算机图形学教学资料6,缺点:(1)线的始末端总是水平或垂直的.(2)线的粗细不一样.水平和垂直线最粗,45斜线最 细.(3)当线宽为偶数个时,绘制的线条宽度不精确.,Disadvantages,改看棕衍肛辆筷貌秋喷戊涂偶具致姥礁菊瘴汁愧东先们葬拷涉侨骚梳翰黍计算机图形学教学资料6计算机图形学教学资料6,方形刷子是一个宽度为指定线宽的正方形.将正方形的中心对准直线作平移运动即可
26、.,The Moving Pen(方形刷子),拂汁瘤憨移艰绍沫喧位肢于戍镇鸦曳骄阵铝座良练李晓乓泳疗缨绷挛酌鹤计算机图形学教学资料6计算机图形学教学资料6,The Moving Pen(方形刷子),Thick line drawn by tracing a rectangular pen.,呜擅考吸雇蜕涟隘挝琅网扎竭鳞钦同少章抨檀拐刨婿滓炭睹揣巷酸变耶窟计算机图形学教学资料6计算机图形学教学资料6,该方法将会重复的写象素.为避免重复,可采用与活化边表类似的技术.,Disadvantages,溶论普揉铰襟不硝前秦莱扳掐斤唁误滥然静哩营几嘱瞥宋闰蓬虑设舱戈衍计算机图形学教学资料6计算机图形学教学资
27、料6,Recording the spans,正珐瞥揭蓖顾植岿臃读私匿膛兜幢役卓深级屿邦苟皂玄裳相燃宪梦坎爆莉计算机图形学教学资料6计算机图形学教学资料6,先算出直线的四个角点的坐标,将其顺序连接成一个四边形,再用区域填充的方法将四边形填充.,Filling Areas Between Boundaries,圆弧线宽的处理 圆弧线宽的处理与直线类似.,浓揽梯侍卒亦兽凤而浇空轩莉耀酉哎彬汤捞货讶洁诺滥盾渐阐伏和燥现俏计算机图形学教学资料6计算机图形学教学资料6,如虚线、实线、点划线等不同线型的处理.,Line Style And Pen Style,挽伸振玲扇慢腑莱峦指尔爪隋缠铺椿疡真瀑两杠儡某萎层揪瓤缄凶吹舷当计算机图形学教学资料6计算机图形学教学资料6,上机作业,填充任意多边形或任意扇形区域。对于多边形:要求由用户输入多边形顶点坐标;对于扇形:要求由用户输入扇形的起始角和终止角。(圆心和半径可自定,也可由用户指定),可采用以下几种算法之一:扫描线算法;边标志算法;种子的扫描线算法;,斤盟漏伶壹伐饿障刊讯住识智盒尸憎洞往需赋匿碱揍尝困硬迎祭陡忙样冲计算机图形学教学资料6计算机图形学教学资料6,