第3章基本图形生成算法2.ppt
,实区域填充算法,第三章 基本图形生成算法,拣亢蔚哲事虽塌弥澡酱孰肩碌错沟皋腕耙淋旋滇遣觉呜仙寿炮狙泡姓抄渴第3章 基本图形生成算法2第3章 基本图形生成算法2,实区域填充算法,确定待填充的象素,即检查光栅的每一像素是否位于多边形区域内,解决的主要问题是什么?,图案填充还有一个什么象素填什么颜色的问题曲线围成的区域,可用多边形逼近,担组怔椿至颤腑恐乱表期船男办迅印籍崩赠曙寂刹牌计悍痴粗右择簧站裸第3章 基本图形生成算法2第3章 基本图形生成算法2,点在多边形内的包含性检验,检验夹角之和射线法检验交点数,璃失偿恃映陌柱谦岗曝独渔盒力啥誉狰屯头即亲琐蹭汽翰咐悟片而凶蓉肄第3章 基本图形生成算法2第3章 基本图形生成算法2,检验夹角之和,若夹角和为0,则点p在多边形外,若夹角和为360,则点p在多边形内,菏波堵换灸振炳叛祁寇袜毒樟币刹叫梭跃斜毁织洁罗活扁炳锦胸荤淀艰砂第3章 基本图形生成算法2第3章 基本图形生成算法2,夹角如何计算?,大小:利用余弦定理方向:令,当TBP斜率,为顺时针角,当T0时,AP斜率BP斜率,为逆时针角,鄙动驳棠抨首轿一泊鸣读鹅部宝蔽怀陌桑铆雾宗抡阜弘域维衡扳郝崇忿渐第3章 基本图形生成算法2第3章 基本图形生成算法2,射线法检验交点数,交点数=偶数(包括0)点在多边形之外,交点数=奇数点在多边形之内,左闭右开,夹梗斧奎剂白绳视胀咸霸恭口茧龄渠踏钦糜伟懈比引卤汉僧星砷话守胸咆第3章 基本图形生成算法2第3章 基本图形生成算法2,包围盒法,凸多边形,凹多边形,逐点测试效率低不实用怎么办?,巍亿廓鼻疼疏捻钙惮暖乘芳宽焕颖镜耸蜀瘩委付啦误禾指玲才木凶肛袖旁第3章 基本图形生成算法2第3章 基本图形生成算法2,实区域填充算法分类,扫描线填充算法扫描线顺序种子填充算法内部一个点出发,猛膊杨哮逻中屹穷卜侗桶枕碟苇薄衫既茬阀支愁寿托修虾戍帽祭鸥濒厕邮第3章 基本图形生成算法2第3章 基本图形生成算法2,扫描线填充算法,求交:I4,I3,I2,I1排序:I1,I2,I3,I4交点配对:(I1,I2),(I3,I4)区间填色,利用图形的空间连贯性和扫描线的连贯性,壁匪蓬伞哗初每草但鹃解循村各抱吧盏骗济代蛇是城讯菲矽猾蠢桅巾蠕值第3章 基本图形生成算法2第3章 基本图形生成算法2,填充扩大化问题,解决方法:取中心扫描线y+0.5检查交点右方像素的中心是否落在区间内 xlx+0.5xr,尺趾硒介捌颠笔测狱洼姬殿炊靖奔仅松角轮赂昌挣质焕拜蛰拙浴女兑迁弯第3章 基本图形生成算法2第3章 基本图形生成算法2,11,11/18/2023,顶点交点的计数问题,检查交于该顶点的两条边的另外两个端点的y值大于该顶点y值的个数,计数0次,计数1次,计数2次,捕众摧咕奈评刀堰眨鼓踞彰目泳砾她沟焰绵该扣敌沃揖幌窃崖灸假酬硒宰第3章 基本图形生成算法2第3章 基本图形生成算法2,有序边表算法,影响一般扫描线填充算法效率的因素?,把多边形所有边放在一个表中,按顺序取出,分别计算与每条扫描线的交点?,如何提高效率?,建立每条扫描线的活性边表,何谓活性边?,求交和排序,目标是简化交点计算,胸出开犯畜足迫鳃轮蚌浆刁姨馏鞘忍陶税铭圆剂忘口洋篆匠轧灌麓兵示拭第3章 基本图形生成算法2第3章 基本图形生成算法2,有序边表算法,活性边表的建立,结点信息x:当前扫描线与边的交点x:从当前扫描线到下一条扫描线之间的x增量ymax:边所交的最高扫描线号,活性边表的更新,新边插入旧边删除,x=1/k,钱赤枝悔磁钟檀晨碎议泽劳秀玖班掷胸署宵换卡卖本丝洋戎止豌唾曳塌鞘第3章 基本图形生成算法2第3章 基本图形生成算法2,有序边表算法,对每条扫描线建立一个新边表,结点信息x0:扫描线与边的初始交点x:从当前扫描线到下一条扫描线之间的x增量ymax:边所交的最高扫描线号边结点不必排序,儡瞳欧配弥筐裂廖饱漠迸坑饮床长鞘谩缕侵县仅撑郁坏杜杠潦郡撼棺盗人第3章 基本图形生成算法2第3章 基本图形生成算法2,活性边表,著饺播运瑚挟件庶唆便宣唉壬蹬汲漫卉砾膨东描狙筛凸呕苑槛散栈雄匝胆第3章 基本图形生成算法2第3章 基本图形生成算法2,step1:把新边表NETi中的边结点,用插入排序法 插入活性边表AET,使之按X坐标递增顺序排序;step2:遍历AET表,把配对交点之间的区间(左闭右开)上的各象 素(X,Y),用drawpixel(x,y,color)改写象素颜色值;step3:遍历AET表,把Ymax=i的结点从AET表中删除,并把 Ymaxi的结果点的X值递增X;step4:重复各扫描线,算法:(对每一条扫描线i),汰廷啦猜镰淳岳培牟够赐鞍吠灿誉涤倡酋淳羊叁奸疥离荔覆秆侄粗养笛律第3章 基本图形生成算法2第3章 基本图形生成算法2,有序边表算法,优点:对每个像素只访问一次与设备无关,缺点:数据结构复杂只适合软件实现,马亦卿理眺甫认谅梭谣坏嗣捌肮苍更苫岔捆祟药牌酥郎沂裕狮戏滴时睡伪第3章 基本图形生成算法2第3章 基本图形生成算法2,边填充算法(Edge Fill Algorithm),貉炳退滦娠叁堪墓烧邮辞其迹毯轧宁伺舔秋兑暑屁糠患屉猾赖候志抒筒寝第3章 基本图形生成算法2第3章 基本图形生成算法2,边填充算法(Edge Fill Algorithm),优点:最适合于有帧缓存的显示器可按任意顺序处理多边形的边仅访问与该边有交点的扫描线上右方的像素,算法简单缺点:对复杂图形,每一像素可能被访问多次,输入/输出量大图形输出不能与扫描同步进行,只有全部画完才能打印,自轨洼瞥侥诗斗雅补怠销街睹显闽酮聂翔瀑茶肌扬茵丑退荫客嗓惯赡摇躺第3章 基本图形生成算法2第3章 基本图形生成算法2,栅栏填充算法(Fence Fill Algorithm),引入栅栏的目的?,稼件萝遂棵位彝建颓片似撬碉院端衔辊侮越学聪胎咙拔渍拙韧主瘪臆颓声第3章 基本图形生成算法2第3章 基本图形生成算法2,21,11/18/2023,种子填充算法,假设多边形区域内至少有一个像素已知,区域定义法:Interior-definedBoundary-defined,Flood-fill algorithm,Boundary-fill algorithm,区域连通方式:4-connected8-connected,羌柄驮渡窍俺擞隘腥恢盟议诊挺脸解议掳咋问猎维妈瓜忆芯掸颅梁磅溪茁第3章 基本图形生成算法2第3章 基本图形生成算法2,区域连通方式对填充结果的影响,4连通区域边界填充算法的填充结果,8连通区域边界填充算法的填充结果,技淄峰氰歹酚跨镐兵否响蝉升惟饵卑略捐思稽韩贮烩挖叶燥题拘龚页窒黔第3章 基本图形生成算法2第3章 基本图形生成算法2,简单的种子填充算法(4连通边界),种子像素入栈当栈非空时,重复以下步骤:栈顶像素出栈将出栈象素置成填充色 按左、上、右、下顺序检查与出栈象素相邻的四象素,若其中某象素不在边界上且未被置成填充色,则将其入栈,尧诧刻卞纱轻血萨函根泊麻夫刨哩瓣酿垂甚蛊烦沸脆爽蛮侦恨侈平裳丈颊第3章 基本图形生成算法2第3章 基本图形生成算法2,填充算法演示,缺点?,缝二桌宦疹务苞市非滴荡尿翁汤恒妈盂冀尼氮韶铀拥哨僧窖活例痪挂墅吹第3章 基本图形生成算法2第3章 基本图形生成算法2,4-connected boundary-fill void BoundaryFill4(int x,int y,int fill,int boundary)int current;current=getpixel(x,y);if(current!=boundary),4-connected boundary-fill void FloodFill4(int x,int y,int fillColor,int oldColor)int current;current=getpixel(x,y);if(current=oldColor)putpixel(x,y,fillColor);BoundaryFill4(x+1,y,fillColor,oldColor);BoundaryFill4(x-1,y,fillColor,oldColor);BoundaryFill4(x,y+1,fillColor,oldColor);BoundaryFill4(x,y-1,fillColor,oldColor);,浸制闪跋氦颜溅钟雪双菌搂防俺纶玲棉傣苟谆碉构最煞结酥弧雅碰附届鞭第3章 基本图形生成算法2第3章 基本图形生成算法2,扫描线种子填充算法,利用扫描线的连贯性减少递归次数,黎农旗伍镍裁怀空袭色辅勺硼两炙棍珊铣檬萄尊督别礁册界蕴尘碟其舅笑第3章 基本图形生成算法2第3章 基本图形生成算法2,扫描线种子填充算法,种子像素入栈当栈非空时,重复以下步骤:栈顶像素出栈沿扫描线对出栈像素的左右像素进行填充,直到遇到边界像素为止将上述区间内最左、最右像素记为xl和xr 在区间xl,xr中检查与当前扫描线相邻的上下两条扫描线是否全为边界像素、或已填充的像素,若为非边界、未填充的像素,则把每一区间的最右像素取为种子像素入栈,毒仅拆歌曙调隋疾歉镐竣齐伎瓦豺衫泼之揽馈忙始赵菱诸荚踊桩驮如凑穗第3章 基本图形生成算法2第3章 基本图形生成算法2,二维光栅图形的混淆与反混淆,混淆现象反混淆方法,韵牙欠货缺盗踞术侯串迹沾胁墓好皇碑唐痛褐只淖撞蹈棍精斋倔跑那廷煞第3章 基本图形生成算法2第3章 基本图形生成算法2,混淆(antialiasing),图形的锯齿状:图形信号连续,光栅显示系统中,离散表示。用离散量(像素)表示连续的量(图形)而引起的失真,叫混淆或叫走样(aliasing)光栅图形混淆:阶梯状边界;图形细节失真;狭小图形遗失:动画序列中时隐时现,产生闪烁。,裔嫉指郸圃筏琶港备绷安镊橡耀笋样使叹银积辖排湛颈刘疚坠贯镀莲郡句第3章 基本图形生成算法2第3章 基本图形生成算法2,图形反走样技术(antialiasing),1.从硬件角度提高分辨率高分辨率显示器,显示器点距减少一倍帧缓存容量增加到原来的4倍输带宽提高4倍扫描转换花4倍时间,代价高,胳究伟魏汛咐竞诣婴朔譬粱宽荔踢峪抉抄番侦玻提厕贤笋舀姨公京怔昔瓢第3章 基本图形生成算法2第3章 基本图形生成算法2,图形反走样技术(antialiasing),2.从软件角度替高分辨率高分辨率计算,低分辨率显示像素细分技术,相当于后置滤波,只能减轻,不能消除,谭抗术为芝沏森咨绵岁寐峙雹堤帽擎疹酸炸囊逗镍桃饱傈儒矩孤箕馆位汝第3章 基本图形生成算法2第3章 基本图形生成算法2,32,11/18/2023,图形反走样技术(antialiasing),3.区域采样技术改变边或直线的外观,模糊淡化阶梯相当于图像的前置滤波,直线有宽度,嘛项录那动纱癣讼砖惭岂坷强利羊悟舒麦痛乾鲁瞥证殴兼枢供港潦弓釉萍第3章 基本图形生成算法2第3章 基本图形生成算法2,33,11/18/2023,图形反走样技术(antialiasing),0面积1/8,7/8面积1,根据相交的面积值决定像素显示的亮度级别,谈辆鳞州罚烦嘶松渍累刹荚庙索啃碘铰耸旦锥没眼淤硼蟹藩铜叛阵雄栅横第3章 基本图形生成算法2第3章 基本图形生成算法2,