графика — заполнение прямоугольников с помощью заливки переполнением стека

Я пытаюсь сделать сетку прямоугольников, похожую на шахматную доску, и у меня возникли некоторые проблемы с использованием графики 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;
}

2

Решение

В соответствии с эта веб-страница третий параметр floodfill цвет, используемый при поиске границы области для заполнения. Он использует текущий шаблон заливки и цвет заливки для рисования области.

В вашем случае он никогда не находит черную или красную рамку, поэтому он заполняет всю страницу белым.

Чтобы исправить это, вы можете

  1. Сделайте прямоугольник нужным цветом границы, установите красный или черный цвет заливки и исправьте положения x, y того места, откуда вы заполняете.

    или же

  2. Проще использовать bar функционировать как комментировал капитан Obvlious.

0

Другие решения