#include< stdio.h>
#include< conio.h>
#include< graphics.h>
void floodFill4(int,int,int,int);
void floodFill8(int,int,int,int);
void main()
{
int gd=DETECT,gm;
int b=0;
initgraph(&gd,&gm,"");
setbkcolor(b);
setcolor(BLUE);
outtextxy(5,5,"Flood Filling algorithm using 4-connected and 8-connected");
line(100,100,50,100);
setcolor(RED);
line(100,100,100,150);
setcolor(BLUE);
line(100,150,50,150);
setcolor(GREEN);
line(50,100,50,150);
floodFill8(53,102,14,b);
setcolor(GREEN);
circle(200,200,30);
setcolor(RED);
circle(200,200,50);
floodFill4(200,240,5,b);
getch();
}
void floodFill4(int x,int y,int fill,int old)
{
int current;
current=getpixel(x,y);
//delay(100);
if(current==old)
{
putpixel(x,y,fill);
floodFill4(x+1,y,fill,old);
floodFill4(x-1,y,fill,old);
floodFill4(x,y-1,fill,old);
floodFill4(x,y+1,fill,old);
}
}
void floodFill8(int x,int y,int fill,int old)
{
int current;
current=getpixel(x,y);
if(current==old)
{
putpixel(x,y,fill);
floodFill8(x+1,y,fill,old);
floodFill8(x-1,y,fill,old);
floodFill8(x,y-1,fill,old);
floodFill8(x,y+1,fill,old);
floodFill8(x+1,y+1,fill,old);
floodFill8(x-1,y+1,fill,old);
floodFill8(x-1,y-1,fill,old);
floodFill8(x+1,y-1,fill,old);
}
}
OUTPUT
#include< conio.h>
#include< graphics.h>
void floodFill4(int,int,int,int);
void floodFill8(int,int,int,int);
void main()
{
int gd=DETECT,gm;
int b=0;
initgraph(&gd,&gm,"");
setbkcolor(b);
setcolor(BLUE);
outtextxy(5,5,"Flood Filling algorithm using 4-connected and 8-connected");
line(100,100,50,100);
setcolor(RED);
line(100,100,100,150);
setcolor(BLUE);
line(100,150,50,150);
setcolor(GREEN);
line(50,100,50,150);
floodFill8(53,102,14,b);
setcolor(GREEN);
circle(200,200,30);
setcolor(RED);
circle(200,200,50);
floodFill4(200,240,5,b);
getch();
}
void floodFill4(int x,int y,int fill,int old)
{
int current;
current=getpixel(x,y);
//delay(100);
if(current==old)
{
putpixel(x,y,fill);
floodFill4(x+1,y,fill,old);
floodFill4(x-1,y,fill,old);
floodFill4(x,y-1,fill,old);
floodFill4(x,y+1,fill,old);
}
}
void floodFill8(int x,int y,int fill,int old)
{
int current;
current=getpixel(x,y);
if(current==old)
{
putpixel(x,y,fill);
floodFill8(x+1,y,fill,old);
floodFill8(x-1,y,fill,old);
floodFill8(x,y-1,fill,old);
floodFill8(x,y+1,fill,old);
floodFill8(x+1,y+1,fill,old);
floodFill8(x-1,y+1,fill,old);
floodFill8(x-1,y-1,fill,old);
floodFill8(x+1,y-1,fill,old);
}
}
OUTPUT