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

विधि
// एक पुनरावर्ती फ़ंक्शन जो पिछले रंग 'OldColor' को '(a, b)' पर और (a, b) के सभी आसपास के पिक्सेल को नए रंग 'NewColor' से बदलता है और floodFill(a, b, NewColor, OldColor)
यदि a या b स्क्रीन के बाहर है, तो लौटें।
यदि getpixel(a, b) का रंग OldColor के समान है, तो
ऊपर, नीचे, दाएं और बाएं के लिए पुनरावृत्ति करें।
floodFill(a+1, b, NewColor, OldColor);
floodFill(a-1, b, NewColor, OldColor);
floodFill(a, b+1, NewColor, OldColor);
floodFill(a, b-1, NewColor, OldColor);
उदाहरण
// फ्लड फिल एल्गोरिदम का उपयोग करके बहुभुज भरने का प्रोग्राम #include <graphics.h> #include <stdio.h> // फ्लड फिल एल्गोरिदम का वर्णन void flood(int x1, int y1, int new_col, int old_col){ // वर्तमान पिक्सेल की जांच कि यह old_color है या नहीं if (getpixel(x1, y1) == old_col) { // नए रंग के साथ नया पिक्सेल डालें putpixel(x1, y1, new_col); // नीचे के पिक्सेल भरने के लिए पुनरावर्ती कॉल flood(x1 + 1, y1, new_col, old_col); // ऊपर के पिक्सेल भरने के लिए पुनरावर्ती कॉल flood(x1 - 1, y1, new_col, old_col); // दाएं पिक्सेल भरने के लिए पुनरावर्ती कॉल flood(x1, y1 + 1, new_col, old_col); // बाएं पिक्सेल भरने के लिए पुनरावर्ती कॉल flood(x1, y1 - 1, new_col, old_col); } } int main(){ int gd1, gm1 = DETECT; // ग्राफ़ प्रारंभ करना initgraph(&gd1, &gm1, ""); // आयत निर्देशांक दिखाता है int top1, left1, bottom1, right1; top1 = left1 = 50; bottom1 = right1 = 300; // प्रिंट आयत के लिए आयत दिखाता है rectangle(left1, top1, right1, bottom1); // भरने की प्रारंभिक निर्देशांक int x1 = 51; int y1 = 51; // भरने के लिए नया रंग दिखाता है int newcolor = 12; // पुराना रंग जिसे आप बदलना चाहते हैं int oldcolor = 0; // आयत भरने के लिए कॉल flood(x1, y1, newcolor, oldcolor); getch(); return 0; } आउटपुट
