TC任意封闭图形的填充
截止目前为止,我们只能对一些特定形状的封闭图形进行填充,但还不能对任意封闭图形进行填充。为此,TURBO C 提供了一个可对任意封闭图形填充的函数,其调用格式如下: void far floodfill(int x, int y, int border); 其中:x, y为封闭图形内的任意一border为边界的颜色,也就是封闭图形轮廓的颜色。 调用了该函数后,将用规定的颜色和图模填满整个封闭图形。注意:a。 如果x或y取在边界上,则不进行填充。b。 如果不是封闭图形则填充会从没有封闭的地方溢出去,填满其它地方。c。 如果x或y在图形外面,则填充封闭图形外的屏幕区域。 d。 由borde...全部
截止目前为止,我们只能对一些特定形状的封闭图形进行填充,但还不能对任意封闭图形进行填充。为此,TURBO C 提供了一个可对任意封闭图形填充的函数,其调用格式如下: void far floodfill(int x, int y, int border); 其中:x, y为封闭图形内的任意一border为边界的颜色,也就是封闭图形轮廓的颜色。
调用了该函数后,将用规定的颜色和图模填满整个封闭图形。注意:a。 如果x或y取在边界上,则不进行填充。b。 如果不是封闭图形则填充会从没有封闭的地方溢出去,填满其它地方。c。 如果x或y在图形外面,则填充封闭图形外的屏幕区域。
d。 由border指定的颜色值必须与图形轮廓的颜色值相同, 但填充色可选任意颜色。下例是有关floodfill()函数的用法,该程序填充了bar3d()所画长方体中其它两个未填充的面。
#include#includemain(){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();}。收起