1. 程式人生 > >計算機圖形學常用演算法實現5 區域填充演算法-遞迴形式

計算機圖形學常用演算法實現5 區域填充演算法-遞迴形式

遞迴形式的區域填充演算法的效率實在是太低了(就是裸的dfs),導致圖形大一點就會爆棧,沒有很大的實用性。
程式碼如下:

void floodFill4(int x,int y,int i)
{
    if (map[x, y] == false)
    {      
        g.FillRectangle(p, new RectangleF(x, y, 1, 1));
        map[x, y] = true;     
        floodFill4(x, y - 1,i+1);
        floodFill4(x, y + 1,i+1);
        floodFill4(x - 1,y,i+1);
        floodFill4(x + 1, y,i+1);
    }
}

效果如下:
在這裡插入圖片描述