(Примечания: Мой колледж делает меня изучать графику в древнем Turbo C)Заливка трудности в графике C
Во всяком случае, я использую встроенный алгоритм заливки раскрасить хорошо и ведро.
Проблема, с которой я сталкиваюсь, заключается в том, что компилятор заполняет область до граничного цвета. Однако я хотел бы заполнить базовую цифру (эллипс здесь), независимо от границы. Как это сделать?
Я сделал некоторые тестирования, как показано ниже,
Pic1, Заполненного ведра перед нанесением хорошо, так хорошо рисует над синим
pic2, Drew задолго до заливки ведра , Таким образом, заполняется только одна часть
Мой код:
#include<graphics.h>
#include<stdio.h>
void well()
{
ellipse(50,150,0,360,50,20); //Hole of the well
arc(50,120,180,300,100);
line(0,150,0,206);
line(100,150,100,206);
line(0,150,0,100);
line(0,100,50,100);
circle(50,100,10);
setfillstyle(SOLID_FILL,RED);
floodfill(20,170,WHITE);
}
void bucket(int j)
{
ellipse(50,j,0,360,20,10); //The Ellipse to be filled as blue
line(40,j+40,60,j+40);
line(40,j+40,30,j);
line(60,j+40,70,j);
setfillstyle(SOLID_FILL,BLUE);
floodfill(50,j,WHITE);
}
void main()
{
int gdriver = DETECT, gmode,i;
initgraph(&gdriver, &gmode, "C:\\TC\\BGI");
cleardevice();
well();
bucket(130);
getch();
}
Почему вы не нарисовали сплошной эллипс ('fillellipse') в том же положении и с одинаковым размером? Нужно ли действительно содержать алгоритм заполнения заполнителя? – Malina
Попробуйте использовать «fillellipse» вместо «ellipse» – Buddy
Turbo C, BGI, о, мой! – isanae