C Program for Flood-Fill Algorithm To Fill Different Types Of Geometric Shapes

Ram Pothuraju
#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




Post a Comment

0Comments

Post a Comment (0)