【问题标题】:Flood fill difficulty in C graphicsC图形中的洪水填充难度
【发布时间】: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


【解决方案1】:

使用 fillellipse() 代替 ellipse()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2011-07-10
    • 1970-01-01
    • 2011-09-30
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多