The boundary fill algorithm fills a region with the given fill color until the given boundary color is found. Here i have used the 8-point technique to color a region. The program is using a recurssive function. The function return when the pixel to be colored is the boundary color or is already the fill color.


#include<stdio.h>
#include<conio.h>
#include<graphics.h>

void boundary_fill(int x,int y, int fcolor,int bcolor)
{

if((getpixel(x,y) != fcolor) && (getpixel(x,y) != bcolor))
{
putpixel(x,y,fcolor);
boundary_fill(x+1,y,fcolor,bcolor);
boundary_fill(x-1,y,fcolor,bcolor);
boundary_fill(x,y-1,fcolor,bcolor);
boundary_fill(x,y+1,fcolor,bcolor);
boundary_fill(x+1,y-1,fcolor,bcolor);
boundary_fill(x+1,y+1,fcolor,bcolor);
boundary_fill(x-1,y-1,fcolor,bcolor);
boundary_fill(x-1,y+1,fcolor,bcolor);
}
}


void main()
{
int x,y,fcolor,bcolor;

clrscr();
printf("Enter the seed pointn");
scanf("%d%d",&x,&y);
printf("Enter boundary color : ");
scanf("%d",&bcolor);
printf("Enter new color : ");
scanf("%d",&fcolor);

int gd=DETECT,gm=DETECT;
initgraph(&gd,&gm,"");
cleardevice();

/*
plase ceate your own shapes
to make a closed area.
*/

boundary_fill(x,y,fcolor,bcolor);

getch();
}

Posted by Dipin Krishna Tuesday, October 7, 2008

0 comments

Subscribe here

Get visitors map like this