/*
Title: Boundary Filling Algorithm
Author: Kasun Ranga Wijeweera
Email: krw19870829@gmail.com
Date: 20150323
*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include"D:/GP/header/grap.h"
double x[]={20,40,40,20};
double y[]={20,20,40,40};
int points=4;
int boundaryColor=15;
int fillColor=10;
void drawPolygon()
{
int i,j;
for(i=0;i<points;i++)
{
j=(i+1)%points;
line(x[i],y[i],x[j],y[j]);
}
}
void fill4(int x,int y)
{
int currentColor=getpixel(x,y);
if((currentColor!=boundaryColor) && (currentColor!=fillColor))
{
putpixel(x,y,fillColor);
fill4(x+1,y);
fill4(x-1,y);
fill4(x,y+1);
fill4(x,y-1);
}
}
void fill8(int x,int y)
{
int currentColor=getpixel(x,y);
if((currentColor!=boundaryColor) && (currentColor!=fillColor))
{
putpixel(x,y,fillColor);
fill8(x+1,y);
fill8(x-1,y);
fill8(x,y+1);
fill8(x,y-1);
fill8(x+1,y+1);
fill8(x-1,y+1);
fill8(x+1,y-1);
fill8(x-1,y-1);
}
}
void main()
{
ginit();
setcolor(15);
drawPolygon();
fill4(30,30);
//fill8(30,30);
getch();
gexit();
}

Boundary Fill Algorithm in C