अवधारणा
किसी दिए गए आयत के संबंध में, हमारा कार्य बाढ़ भरण एल्गोरिथम लागू करके इस आयत को भरना है।
इनपुट
rectangle(left = 50, top = 50, right= 100, bottom = 100) floodFill( a = 55, b = 55, NewColor = 12, OldColor = 0)
आउटपुट

विधि
// पिछले रंग 'OldColor' को '(a, b)' पर और (a, b) के आसपास के सभी पिक्सल को नए रंग 'NewColor' और फ्लडफिल (a, b, NewColor, OldColor)
-
अगर स्क्रीन के बाहर a या b है, तो वापस आएं।
-
अगर getpixel(a, b) का रंग OldColor जैसा ही है, तो
-
ऊपर, नीचे, दाएं और बाएं के लिए पुनरावृत्ति करें।
फ्लडफिल (ए+1, बी, न्यूकलर, ओल्डकलर);<
फ्लडफिल (ए-1, बी, न्यूकलर, ओल्ड कलर);
फ्लडफिल (ए, बी+1, न्यूकलर, ओल्डकलर);
फ्लडफिल (ए, बी-1, न्यूकलर, ओल्डकलर);
उदाहरण
// Shows program to fill polygon using floodfill
// algorithm
#include <graphics.h>
#include <stdio.h>
// Describes flood fill algorithm
void flood(int x1, int y1, int new_col, int old_col){
// Checking current pixel is old_color or not
if (getpixel(x1, y1) == old_col) {
// Putting new pixel with new color
putpixel(x1, y1, new_col);
// Shows recursive call for bottom pixel fill
flood(x1 + 1, y1, new_col, old_col);
//Shows recursive call for top pixel fill
flood(x1 - 1, y1, new_col, old_col);
// Shows recursive call for right pixel fill
flood(x1, y1 + 1, new_col, old_col);
// Shows recursive call for left pixel fill
flood(x1, y1 - 1, new_col, old_col);
}
}
int main(){
int gd1, gm1 = DETECT;
// Initializing graph
initgraph(&gd1, &gm1, "");
//Shows rectangle coordinate
int top1, left1, bottom1, right1;
top1 = left1 = 50;
bottom1 = right1 = 300;
// Shows rectangle for print rectangle
rectangle(left1, top1, right1, bottom1);
// Fills start cordinate
int x1 = 51;
int y1 = 51;
// Shows new color to fill
int newcolor = 12;
// Shows old color which you want to replace
int oldcolor = 0;
// Calling for fill rectangle
flood(x1, y1, newcolor, oldcolor);
getch();
return 0;
} आउटपुट
