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

このWebページによると、3番目のパラメーターfloodfillは、塗りつぶす領域の境界を探すときに使用する色です。現在の塗りつぶしパターンと塗りつぶし色を使用して領域を塗りつぶします。

あなたの場合、黒または赤の境界線が見つからないため、ページ全体を白で塗りつぶします。

それを修正するには、次のいずれかを実行できます

  1. 長方形を正しい境界線の色にし、塗りつぶしの色を赤または黒に設定し、塗りつぶし元の x、y 位置を修正します。

    また

  2. barキャプテンオブブリアスがコメントしたように、より単純に関数を使用します。

于 2015-06-02T01:27:25.893 に答える