区域填充:即给出一个区域的边界,要求对边界范围内的所有像素单元赋予指定的颜色代码。区域填充中最常见的是多边形填色。
多边形光栅化主要有三种方法:
逐点判断法:
即逐个判断绘图窗口内的像素,确定它们是否在多边形区域内部,从而求出位于多边形区域内的像素的集合,通常有两种方法:射线法,累计角度法。
1)射线法
从v点发出射线与多边形P的边相交,若交点的个数为奇数,则v位于多边形P内:若为偶数,则v位于多边形P的外部。
2)累计角度法
计算各边的夹角的和,若代数和为零,该点属于域外;若代数和为2Π,则高低点属于域内。
扫描线填充法
确定多边形所占有的最大扫描线数:Ymin,Ymax。
从Ymin到Ymax。对每条扫描线:
求交
排序
交点配对
区域填色
当扫描线与多边形的顶点相交时,交点的取舍:若顶点是极值点时,按两个或零个交点计:P1,P3,否则按一个交点计:P2