截止目前为止,我们只能对一些特定形状的封闭图形进行填充,但还不能对任意封闭图形进行填充。为此,TURBO C 提供了一个可对任意封闭图形填充的函数,其调用格式如下:
void far floodfill(int x, int y, int border);
其中:x, y为封闭图形内的任意一border为边界的颜色,也就是封闭图形轮廓的颜色。调用了该函数后,将用规定的颜色和图模填满整个封闭图形。
注意:
下例是有关floodfill()函数的用法,该程序填充了bar3d()所画长方体中其它两个未填充的面。
#include<stdlib.h> #include<graphics.h> main() { int gdriver, gmode; struct fillsettingstype save; gdriver=DETECT; initgraph(&gdriver, &gmode, "c:\\caic\\bgi"); setbkcolor(BLUE); cleardevice(); setcolor(LIGHTRED); setlinestyle(0,0,3); setfillstyle(1,14); /*设置填充方式*/ bar3d(100,200,400,350,200,1); /*画长方体并填充*/ floodfill(450,300,LIGHTRED); /*填充长方体另外两个面*/ floodfill(250,150, LIGHTRED); rectangle(450,400,500,450); /*画一矩形*/ floodfill(470,420, LIGHTRED); /*填充矩形*/ getch(); closegraph(); }