【发布时间】:2015-05-13 18:18:52
【问题描述】:
(注意:我的大学让我学习古代 Turbo C 的图形)
无论如何,我正在使用内置算法进行洪水填充来为井和水桶着色。
我面临的问题是编译器将该区域填充到边界颜色。但是,无论边界如何,我都想填写一个基本图形(此处为省略号)。 如何做到这一点?
我做了一些测试如下图,
Pic1,在画好之前装满水桶,所以画得很好
Pic2,在灌水桶之前画得很好,所以只填了一部分
我的代码:
#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)?它真的需要包含一个桶填充算法吗? -
尝试使用“fillellipse”而不是“ellipse”
-
Turbo C,华大基因,天哪!
-
他们只是让他们的生活变得比应有的更艰难......使用这些来自第一个已知千年的传奇编译器。
标签: c graphics flood-fill turbo-c