光柵圖形學-區域填充-遞迴
阿新 • • 發佈:2018-12-12
區域是指已經表示成點陣形式的填充圖形,它是畫素的幾何。區域可採用內點表示和邊界表示兩種表現形式。邊界表示中,區域邊界著同一種顏色。區域填充指先將區域的一點賦予指定的顏色,然後將該顏色擴充套件到整個區域的過程。
邊界表示的四連通區域的遞迴填充演算法:若原四連通區域用的是邊界表示,boundarycolor表示邊界的原色。
執行結果:
填充前:
填充後:
原始碼:
void CDrawView::BoundaryFill4(int x,int y,int boundarycolor,int newcolor) { //邊界表示的四連通區域的遞迴填充演算法 CClientDC dc(this); int color=dc.GetPixel(x,y); if(color!=newcolor&&color!=boundarycolor) //不是新顏色也不是邊界顏色 填充 { dc.SetPixel(x,y,newcolor); BoundaryFill4(x,y+1,boundarycolor,newcolor); //分別填充另外相鄰四個方向 BoundaryFill4(x,y-1,boundarycolor,newcolor); BoundaryFill4(x-1,y,boundarycolor,newcolor); BoundaryFill4(x+1,y,boundarycolor,newcolor); } }