mmmmmmmmmb
دوشنبه 27 آذر 1391, 21:26 عصر
این تابع برای برای پر کردن سطوح به روش 4 همبنده . کسی می دونه اینو چطور میشه به صورت غیر بازگشتی نوشت ؟ چون همینو وقتی به صورت 8 همبند میخوام بنویسم خطای پر شدن استک رو میده !
void boundaryfill4 ( int x,int y, int fillcolor, int bordercolor)
{
int interiorcolor;
getpixel ( x, y ,interiorcolor);
if (( interiorcolor!= bordercolor)&&( interior!= fillcolor))
{ setcolor(fillcolor);
setpixel(x,y);
boundaryfill4(x+1,y,fillcolor,brodercolor);
boundaryfill4(x-1,y,fillcolor,brodercolor);
boundaryfill4(x,y+1,fillcolor,brodercolor);
boundaryfill4(x,y-1,fillcolor,brodercolor);
}
}
void boundaryfill4 ( int x,int y, int fillcolor, int bordercolor)
{
int interiorcolor;
getpixel ( x, y ,interiorcolor);
if (( interiorcolor!= bordercolor)&&( interior!= fillcolor))
{ setcolor(fillcolor);
setpixel(x,y);
boundaryfill4(x+1,y,fillcolor,brodercolor);
boundaryfill4(x-1,y,fillcolor,brodercolor);
boundaryfill4(x,y+1,fillcolor,brodercolor);
boundaryfill4(x,y-1,fillcolor,brodercolor);
}
}