我试图将矩形网格看作棋盘格,并且在使用BGI图形时遇到了一些麻烦。我已经得到了我的代码来生成一系列矩形,但每次我尝试添加颜色时,整个显示变为白色。这是我目前的代码:
#include <iostream>
#include <graphics.h>
using namespace std;
int main( )
{
int e = 1;
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
rectangle(0,0,160,160);
for(int a=0;a<=160;a+=20) {
for(int b=0;b<=160;b+=20) {
if (a == 0) {
rectangle(a*e,b*e,20*e,20*e);
getch();
floodfill(a+1,b+1,RED);
}
else if ((160/a)%2 == 0) {
rectangle(a*e,b*e,20*e,20*e);
getch();
floodfill(a,b,RED);
}
else {
rectangle(a*e,b*e,20*e,20*e);
getch();
floodfill(100,100,BLACK);
}
}
}
while (!kbhit( ))
{
delay(1000);
}
return 0;
}
答案 0 :(得分:0)
根据this web page,floodfill
的第三个参数是查找要填充区域边框时使用的颜色。它使用当前填充图案和填充颜色来绘制区域。
在您的情况下,它永远不会找到黑色或红色边框,因此它会用白色填充整个页面。
要修复它,你可以
使矩形成为正确的边框颜色,并将填充颜色设置为红色或黑色,并修正填充位置的x,y位置。
或
更简单地使用bar
函数作为Obvlious船长评论。
答案 1 :(得分:0)
bro仅给出要填充的形状内任何点的坐标。确保不要在形状之外放置坐标,否则颜色将被填充到形状外部,或者它将被该颜色填充到屏幕上。