gpt4 book ai didi

c - setfillcolor() 无法设置颜色?

转载 作者:太空宇宙 更新时间:2023-11-04 04:07:20 24 4
gpt4 key购买 nike

我正在使用 graphics.h 库在显示屏上实现关机按钮。我面临的问题是颜色函数 (setfillcolor()) 不起作用,我想通过它为两者之间的区域着色红色圆圈。我的编译器是 turbo C。

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

alt text

最佳答案

setfillcolor 只是设置填充颜色吗?也就是说,它真的画了什么吗?

可能要填充你的背景,你可能必须找到它的矩形并在绘制两个圆圈之前调用 FilledRectangle(抱歉,我不知道函数名称)?

所以像这样:(伪代码)

  1. 设置填充颜色
  2. 绘制背景矩形
  3. 设置cirlce 1颜色
  4. 画圆1
  5. 设置cirlce 2颜色
  6. 画圆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 是屏幕矩形的范围。这样做的目的是设置绘制填充形状时要使用的填充颜色。然后绘制一个填充的矩形,其中包含您必须提供的屏幕范围。然后在已经绘制的填充矩形上绘制圆圈。绘制圆圈的顺序已切换,因此较大的圆圈不会 overdraw 较小的圆圈(我假设这就是您想要的)。

回答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


希望这有帮助!?

附注我刚刚看到您帖子下方的图片 - 如果这是您想要的那种结果,我强烈建议您尽可能使用更强大/最新的图形库!

关于c - setfillcolor() 无法设置颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com