Χρωματισμός Κλειστού Σχήματος
#include <graphics.h>
#include <conio.h>
main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
setcolor(RED);
circle(100,100,50);
floodfill(100,100,RED);
getch();
closegraph();
}
Η συνάρτηση floodfill(), γεμίζει ένα κλειστό σχήμα το οποίο περικλείεται από ένα συγκεκριμένο χρώμα, με βάση ένα σημείο που δίνεται στα ορίσματά της. Στο παραπάνω παράδειγμα, σχεδιάζεται ένας κύκλος με κόκκινο περίγραμμα (ο κύκλος έχει κέντρο στο 100, 100). Στη συνέχεια η floodfill(), ορίζει ένα σημείο (το 100, 100 το οποίο βρίσκεται εντός τυ κύκλου διότι αποτελεί το κέντρο του) και χρωματίζει με το εξορισμού χρώμα (WHITE), όλο το τμήμα το οποίο περικλείεται από κόκκινο χρώμα (δηλαδή όλο τον κύκλο). Αν το σημείο βρισκόταν έξω από τα όρια του κύκλου, τότε θα χρωματιζόταν το κομμάτι της οθόνης που βρίσκεται έξω από τον κύκλο.
Οι παράμετροι που δέχεται η floodfill(), είναι οι συντεταγμένες του σημείου το οποίο βρίσκεται εντός του κλειστού τμήματος που πρέπει να γεμίσει και το χρώμα του περιγράμματος αυτού του τμήματος.
Η floodfill επηρεάζεται από την setfillstyle(), τόσο ως προς το χρώμα, όσο και ως προς το pattern.
Τέλος αξίζει να σημειωθεί πως η floodfill(), δεν γεμίζει μόνο καθορισμένα τμήματα (πχ κύκλους, τετράπλευρα κτλ), αλλά και ακαθόριστα σχήματα. Για παράδειγμα μπορούμε να δημιουργήσουμε ένα ακαθόριστο πολύγωνο με κόκκινο περίγραμμα και συντεταγμένες (100, 100), (100, 150), (150, 240), (240, 150), (150, 100) και (100, 100) ώστε το πολύγωνο να κλείνει.
Στη συνέχεια θα μπορούσαμε να επιλέξουμε ένα σημείο εντός του παραπάνω σχήματος, για παράδειγμα το (110, 110). Για να ελέγξουμε αν όντως το σημείο ανήκει στο σχήμα, μπορούμε να ανάψουμε το εν λόγω pixel.
Τέλος μπορούμε να το γεμίσουμε με το επιθυμητό στυλ γεμίσματος και χρώμα, μέσω της floodfill().
Ο κώδικας του προγράμματος είναι ο παρακάτω :
#include <graphics.h>
#include <conio.h>
main() {
int gd=DETECT,gm,points[]={100, 100, 100, 150, 150, 240, 240, 150, 150, 100, 100, 100};
initgraph(&gd, &gm, "C:\\TC\\BGI");
setcolor(RED); /* Σχεδίαση πολυγώνου */
drawpoly(6, points);
getch();
putpixel(110, 110, WHITE); /* Υπόδειξη σημείου */
getch();
setfillstyle(LTSLASH_FILL, YELLOW); /* Γέμισμα σχήματος */
floodfill(110, 110, RED);
getch();
closegraph();
}




Σημείο με συντεταγμένες (110, 110). Βρίσκεται εντός του σχήματος
Γέμισμα του γεωμετρικού σχήματος, το οποίο περικλείεται από κόκκινο χρώμα με συγκεκριμένο στυλ γεμίσματος και χρώμα.