C语言中的着色问题

C语言中的着色问题,c,graphics,turbo-c,C,Graphics,Turbo C,我正在使用graphics.h library在显示屏上实现关闭按钮。我面临的问题是颜色函数(setfillcolor())不起作用,我想用它将两个圆圈之间的区域涂成红色。我的编译器是turbo C void shutdown(void) { setcolor(RED); circle(550,50,10); setfillcolor(RED); //color. circle(550,50,15); setcolor(CYAN);

我正在使用graphics.h library在显示屏上实现关闭按钮。我面临的问题是颜色函数(setfillcolor())不起作用,我想用它将两个圆圈之间的区域涂成红色。我的编译器是turbo C

   void shutdown(void)
    { 
    setcolor(RED);
    circle(550,50,10);
    setfillcolor(RED);
    //color.
    circle(550,50,15);
    setcolor(CYAN);
    }

setfillcolor是否只设置填充颜色?i、 它真的画了什么吗

为了填充你的背景,你可能必须先找到它的矩形,然后在画两个圆之前调用FilledRectangle(对不起,我不知道函数名)

比如:(psuedo代码)

  • 设置填充颜色
  • 绘制背景矩形
  • 设置循环1颜色
  • 画圆1
  • 设置cirlce 2颜色
  • 画圆圈2
  • 对不起,我找错树了


    编辑:

    有太多的可能你是对的;)以下是我对你问题的两种解释(尽管我不完全确定你的目的是什么):

    答复1: 试试这样的

    void shutdown(void)
    { 
    setfillcolor(BLACK);
    FilledRectangle(screenRectLeft, screenRectTop,
        screenRectRight, screenRectBottom);
    
    setcolor(CYAN);
    circle(550,50,15);
    
    setcolor(RED);
    circle(550,50,10);
    }
    
    其中screenRectLeft、screenRectTop、screenRectRight和screenRectBottom是屏幕矩形的范围。这样做的目的是设置绘制填充形状时使用的填充颜色。然后用屏幕的范围绘制一个填充矩形,您必须提供该范围。然后在已绘制的填充矩形上绘制圆。绘制圆的顺序已被切换,以便较大的圆不会过度绘制较小的圆(我假设这是您想要的)

    答复2: 如果你想画两个环,每个环都有相同的中心点,它们之间的空间是背景色,你必须从最大的圆向内画同心圆,类似这样:

    void shutdown(void)
    { 
    setfillcolor(BLACK);
    FilledRectangle(screenRectLeft, screenRectTop,
        screenRectRight, screenRectBottom);
    
    setcolor(RED);
    circle(550,50,20);
    
    setcolor(BLACK);
    circle(550,50,15);
    
    setcolor(RED);
    circle(550,50,10);
    
    setcolor(BLACK);
    circle(550,50,5);
    }
    
    那应该(我认为,不能测试)画两个红环。您可以根据自己的喜好调整半径:o


    希望这有帮助


    p、 我刚刚看到了你帖子下面的图片——如果这是你想要的结果,我强烈建议你尽可能使用更强大/最新的图形库

    setfillcolor是否只设置填充颜色?i、 它真的画了什么吗

    为了填充你的背景,你可能必须先找到它的矩形,然后在画两个圆之前调用FilledRectangle(对不起,我不知道函数名)

    比如:(psuedo代码)

  • 设置填充颜色
  • 绘制背景矩形
  • 设置循环1颜色
  • 画圆1
  • 设置cirlce 2颜色
  • 画圆圈2
  • 对不起,我找错树了


    编辑:

    有太多的可能你是对的;)以下是我对你问题的两种解释(尽管我不完全确定你的目的是什么):

    答复1: 试试这样的

    void shutdown(void)
    { 
    setfillcolor(BLACK);
    FilledRectangle(screenRectLeft, screenRectTop,
        screenRectRight, screenRectBottom);
    
    setcolor(CYAN);
    circle(550,50,15);
    
    setcolor(RED);
    circle(550,50,10);
    }
    
    其中screenRectLeft、screenRectTop、screenRectRight和screenRectBottom是屏幕矩形的范围。这样做的目的是设置绘制填充形状时使用的填充颜色。然后用屏幕的范围绘制一个填充矩形,您必须提供该范围。然后在已绘制的填充矩形上绘制圆。绘制圆的顺序已被切换,以便较大的圆不会过度绘制较小的圆(我假设这是您想要的)

    答复2: 如果你想画两个环,每个环都有相同的中心点,它们之间的空间是背景色,你必须从最大的圆向内画同心圆,类似这样:

    void shutdown(void)
    { 
    setfillcolor(BLACK);
    FilledRectangle(screenRectLeft, screenRectTop,
        screenRectRight, screenRectBottom);
    
    setcolor(RED);
    circle(550,50,20);
    
    setcolor(BLACK);
    circle(550,50,15);
    
    setcolor(RED);
    circle(550,50,10);
    
    setcolor(BLACK);
    circle(550,50,5);
    }
    
    那应该(我认为,不能测试)画两个红环。您可以根据自己的喜好调整半径:o


    希望这有帮助


    p、 我刚刚看到了你帖子下面的图片——如果这是你想要的结果,我强烈建议你尽可能使用更强大/最新的图形库

    这与
    C
    -我怀疑您使用的是一个旧的编译器/开发环境,它有一些原始的图形库,例如
    turboc
    -您可能需要指定它的确切含义,这与
    C
    没有多大关系-我怀疑您使用的是一个旧的编译器/开发环境,它有一些原始的图形库,例如
    turboc
    -您可能需要指定确切的内容,因为任何答案都是特定于此的。