8.10.4 漫水填充算法(flood fill)算法

为了显示一个未填充的多边形,可以使用Bresenham算法将该多边形的边光栅化为帧缓存中像素。
假定只有两种颜色:背景色(白色)、前景色或绘制色(黑色)。
对多边形的边进行光栅化处理后,我们把边的颜色置成前景色,此时帧缓存中的着色效果如图8.39所示的简单多边形。
8.10.4 漫水填充算法(flood fill)算法_第1张图片
如果能够在多边形的内部区域找到一个初始点(x,y),即种子点(seed point),那么就可以递归地寻找它的相邻像素:如果这个初始点的相邻像素不在多边形的边上,那么就用前景色对它着色。
假定函数read_pixel用来返回某个像素的颜色,则**漫水填充算法(flood fill algorithm)**可以用下面的伪代码表示:

function floodFill(x, y) {
if (readPixel(x, y) == WHITE)
 { 
 	writePixel(x, y, BLACK); 
 	floodFill(x-1, y); 
 	floodFill(x+1, y);
 	floodFill(x, y-1); 
 	floodFill(x, y+1);
 }
}

你可能感兴趣的:(8.10.4 漫水填充算法(flood fill)算法)