发布网友 发布时间:2022-04-19 10:10
共1个回答
热心网友 时间:2023-08-10 16:35
对于图形模式的屏幕颜色设置, 同样分为背景色的设置和前景色的设置。在 Turbo C中分别用下面两个函数。 设置背景色: void far setbkcolor( int color); 设置作图色: void far setcolor(int color); 其中color 为图形方式下颜色的规定数值, 对EGA, VGA显示器适配器, 有关 颜色的符号常数及数值见下表所示。 表3 有关屏幕颜色的符号常数表 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 符号常数 数值 含义 符号常数 数值 含义 —————————————————————————————— ————— BLACK 0 黑色 DARKGRAY 8 深灰 BLUE 1 兰色 LIGHTBLUE 9 深兰 GREEN 2 绿色 LIGHTGREEN 10 淡绿 CYAN 3 青色 LIGHTCYAN 11 淡青 RED 4 红色 LIGHTRED 12 淡红 MAGENTA 5 洋红 LIGHTMAGENTA 13 淡洋红 BROWN 6 棕色 YELLOW 14 * LIGHTGRAY 7 淡灰 WHITE 15 白色 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 对于CGA适配器, 背景色可以为表3中16种颜色的一种, 但前景色依赖于不同 的调色板。共有四种调色板, 每种调色板上有四种颜色可供选择。不同调色板所 对应的原色见表4。 表4 CGA调色板与颜色值表 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 调色板 颜色值 ————————————————————————————— 符号常数 数值 0 1 2 3 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ C0 0 背景 绿红黄 C1 1 背景 青 洋红 白 C2 2 背景 淡绿 淡红 黄 C3 3 背景 淡青 淡洋红 白 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━ 清除图形屏幕内容使用清屏函数, 其调用格式如下: voide far cleardevice(void); 有关颜色设置、清屏函数的使用请看例8。 例8: #include<stdio.h> #include<graphics.h> int main() { int gdriver, gmode, i; gdriver=DETECT; registerbgidriver(EGAVGA_ DRIVER);/*建立图形运行程序*/ initgraph(&gdriver, &gmode", "");/*图形初始化*/ setbkcolor(0); /*设置图形背景*/ cleardevice(); for(i=0; i<=15; i++) { setcolor(i); /*设置不同作图色*/ circle(320, 240, 20+i*10); /*画半径不同的圆*/ delay(100); /*延迟100毫秒*/ } for(i=0; i<=15; i++) { setbkcolor(i); /*设置不同背景色*/ cleardevice(); circle(320, 240, 20+i*10); delay(100); } closegraph(); return 0; } 另外, TURBO C也提供了几个获得现行颜色设置情况的函数。 int far getbkcolor(void); 返回现行背景颜色值。 int far getcolor(void); 返回现行作图颜色值。 int far getmaxcolor(void); 返回最高可用的颜色值。