3

我正在尝试使矩形网格看起来像棋盘格,并且在使用 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;
}
4

2 回答 2

0

根据此网页,第三个参数 tofloodfill是查找要填充区域的边框时使用的颜色。它使用当前的填充图案和填充颜色来绘制该区域。

在您的情况下,它永远不会找到黑色或红色边框,因此它会用白色填充整个页面。

要修复它,您可以

  1. 使您的矩形成为右边框颜色并将填充颜色设置为红色或黑色,并修复您填充位置的 x、y 位置。

    或者

  2. 更简单地使用barObvlious 船长评论的功能。

于 2015-06-02T01:27:25.893 回答
0

x 和 y 坐标中的 Floodfill 函数中的 bro 只需给出要填充的形状内任何点的坐标。确保您没有在形状之外提供坐标,否则颜色将在形状之外填充,或者它将用该颜色填充屏幕。

于 2019-07-05T11:29:15.360 回答