我正在使用graphics.h库来实现显示屏上的关机按钮。我面临的问题是颜色功能(setfillcolor())无法正常工作我想要为两者之间的区域着色红色的圆圈。我的编译器是turbo C。
void shutdown(void)
{
setcolor(RED);
circle(550,50,10);
setfillcolor(RED);
//color.
circle(550,50,15);
setcolor(CYAN);
}
答案 0 :(得分:1)
setfillcolor只设置填充颜色吗?它实际上是否画了什么?
要填写你的背景你可能需要找到它的矩形,也许在你画两个圈之前调用FilledRectangle(我不知道功能名称对不起)?
这样的事情:(伪代码)
编辑:
有一些太多可能是对的;)这里有两次尝试回答我对你的问题的解释(虽然我不完全确定你的意思):
尝试这样的事情
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是屏幕矩形的范围。这样做是设置绘制填充形状时使用的填充颜色。然后使用屏幕的范围绘制填充的矩形,您必须提供该范围。然后在已绘制的填充矩形上绘制圆圈。绘制圆圈的顺序已经切换,以便较大的圆圈不会透过较小的圆圈(我认为这是你想要的)。
如果你的意思是你想要两个环,每个环都有相同的中心点被绘制,它们之间的空间是背景颜色,你必须从最大的圆圈向内绘制同心圆,这样的东西:
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.S。我刚刚看到你帖子下面的图片 - 如果那是你想要的结果,我会强烈建议使用更强大/最新的图形库!如果可能的话!