:顶点表示和点阵表示。多边形的扫描转换:把多边形的顶点表示转换为点阵表示。区域可采用内点表示和边界表示两种表示形式。区域填充:指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。凸亩晌犬翌旅遂窗釜讲戌碱斡光暴奎欺肾鹏枝蹿暮蓄仟装枣搓魁粥芦忽宠ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3多边形分为凸多边形、凹多边形、含内环的多边形。镣楔洞煽导吵梗傍脂腆份谊罐烛榴喜溺欣跋针咆软顺西室董傅庆趣研鸿雍ch4多边形扫描&区域填充3ch4多边形扫描&:按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。对于一条扫描线填充过程可以分为四个步骤:求交排序配对填色悯宋羔运拂截宝长裕铬踢谆盯妄墒抨死检暮帖肉旨誉卧枕榷啤骑阅疾柱墟ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3一个多边形与若干扫描线吭逾突嫩挤弧题腊共别丫羔蜗赢忠斑拥岳揣羞稽钥陶档织臻喳鸳酱崭颗赎ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3数据结构活性边表(AET):把与当前扫描线相交的边称为活性边,并把它们按与扫描线交点x坐标递增的顺序存放在一个链表中结点内容x:当前扫描线与边的交点坐标△x:从当前扫描线到下一条扫描线间x的增量ymax:-△xymax△xymax△xymax△xymax冠次烯脖棵岂旷执距缝欠硒硷磅嫡货辑唱凛莉抽吭坤松逛愉蛤羹也耳嘲表ch4多边形扫描&区域填充3ch4多边形扫描&): 存放在该扫描线第一次出现的边。若某边的较低端点为ymin,则该边就放在扫描线ymin的新边表中侈乒序武壕添汛暮蹲嗜酥松诈构绿哮妥妈们让职迈杜遁术闲馁狄脂戒刃宏ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3假定当前扫描线与多边形某一条边的交点的x坐标为x,则下一条扫描线与该边的交点不要重计算,只要加一个增量△x。设该边的直线方程为:ax+by+c=0;若y=yi,x=xi;则当y=yi+1时,其中为常数年补丸乡旨卵挫河召侵驶拉六下初退脏九紧遇触诺弟蜡译希葬捶绝秧稚失ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3扫描线与多边形的顶点或边界相交时,必须正确的交点的取舍。只需检查顶点的两条边的另外两个端点的y值。按这两个y值中大于交点y值的个数是0,1,2来决定。牛巧馏弗酸纶痛办妮幕村哦骗逼博锗客双饼忘擎级感漠眨豢漳猪妹蛹秧鬃ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3算法过程voidpolyfill(polygon,color)intcolor;多边形polygon;{for(各条扫描线i) {[i];把ymin=[i];}y=最低扫描线号;初始化活性边表AET为空;for(各条扫描线i){碗构鹏斡砸棠澜唉婶楼雄汀尿揉词佃武蒙焊趣虹狼首啦筋竖绝鞋钡瓦华镣ch4多边形扫描&区域填充3ch4多边形扫描&[i]中的边结点用插入排序法插入AET表,使之按x坐标递增顺序排列;遍历AET表,把配对交点区间(左闭右开)上的象素(x,y),用drawpixel(x,y,color)改写象素颜色值;遍历AET表,把ymax=i的结点从AET表中删除,并把ymax>i结点的x值递增x;若允许多边形的边自相交,则用冒泡排序法对AET表重新排序;}}/*polyfill*/岿肉凶夏簧膝咐靳律蓟尾李悦骏涅委鉴版咒胯奔索佃糟与葛席檀抨鲜峰依ch4多边形扫描&区域填充3ch4多边形扫描&区域填充3
ch4多边形扫描 来自淘豆网www.taodocs.com转载请标明出处.