📄 gra.htm
字号:
<HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="Author" CONTENT="wdg"> <META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (Win95; I) [Netscape]"> <TITLE>gra</TITLE></HEAD><BODY> 图形函数<P> Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics.h<BR>中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图<BR>形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示<BR>器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选<BR>为on, 只有这样才能保证正确使用图形函数。<BR> 1. 图形模式的初始化<BR> 不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器,在不同<BR>模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将<BR>显示器设置成为某种图形模式, 在未设置图形模式之前, 微机系统默认屏幕为文<BR>本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。设置屏幕为图形<BR>模式, 可用下列图形初始化函数:<BR> void far initgraph(int far *gdriver, int far*gmode, char *path);<BR> 其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所<BR>在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。<BR> 图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形<BR>适配器有不同的图形驱动程序。例如对于EGA、 VGA 图形适配器就调用驱动程序<BR>EGAVGA.BGI。<P> 表2. 图形驱动器、模式的符号常数及数值<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<BR> 图形驱动器(gdriver) 图形模式(gmode)<BR> ─────────── ─────────── 色调 分辨率<BR> 符号常数 数值 符号常数 数值<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<BR> CGA 1 CGAC0 0 C0 320*200<BR> CGAC1 1 C1 320*200<BR> CGAC2 2 C2 320*200<BR> CGAC3 3 C3 320*200<BR> CGAHI 4 2色 640*200<BR>───────────────────────────────────<BR> MCGA 2 MCGAC0 0 C0 320*200<BR> MCGAC1 1 C1 320*200<BR> MCGAC2 2 C2 320*200<BR> MCGAC3 3 C3 320*200<BR> MCGAMED 4 2色 640*200<BR> MCGAHI 5 2色 640*480<BR>───────────────────────────────────<BR> EGA 3 EGALO 0 16色 640*200<BR> EGAHI 1 16色 640*350<BR>───────────────────────────────────<BR> EGA64 4 EGA64LO 0 16色 640*200<BR> EGA64HI 1 4色 640*350<BR>───────────────────────────────────<BR> EGAMON 5 EGAMONHI 0 2色 640*350<BR>───────────────────────────────────<BR> IBM8514 6 IBM8514LO 0 256色 640*480<BR> IBM8514HI 1 256色 1024*768<BR>───────────────────────────────────<BR> HERC 7 HERCMONOHI 0 2色 720*348<BR>───────────────────────────────────<BR> ATT400 8 ATT400C0 0 C0 320*200<BR> ATT400C1 1 C1 320*200<BR> ATT400C2 2 C2 320*200<BR> ATT400C3 3 C3 320*200<BR> ATT400MED 4 2色 320*200<BR> ATT400HI 5 2色 320*200<BR>───────────────────────────────────<BR> VGA 9 VGALO 0 16色 640*200<BR> VGAMED 1 16色 640*350<BR> VGAHI 2 16色 640*480<BR>───────────────────────────────────<BR> PC3270 10 PC3270HI 0 2色 720*350<BR>───────────────────────────────────<BR> DETECT 0 用于硬件测试<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<P> 例4. 使用图形初始化函数设置VGA高分辨率图形模式<BR> #include <graphics.h><BR> int main()<BR> {<BR> int gdriver,gmode;<BR> gdriver=VGA;<BR> gmode=VGAHI;<BR> initgraph(&gdriver,&gmode, "c:\\tc");<BR> bar3d(100, 100,300, 250, 50, 1); /*画一长方体*/<BR> getch();<BR> closegraph();<BR> return 0;<BR> }<P> 有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序<BR>用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数, 其调用<BR>格式为:<BR> void far detectgraph(int *gdriver, *gmode);<BR> 其中gdriver和gmode的意义与上面相同。<BR> <BR> 例5. 自动进行硬件测试后进行图形初始化<BR> #include <graphics.h><BR> int main()<BR> {<BR> int gdriver,gmode;<BR> detectgraph(&gdriver,&gmode); /*自动测试硬件*/<BR> printf("thegraphics driver is %d, mode is %d\n", gdriver,<BR> gmode); /*输出测试结果*/<BR> getch();<BR> initgraph(&gdriver,&gmode, "c:\\tc");<BR> /* 根据测试结果初始化图形*/<BR> bar3d(10, 10,130, 250, 20, 1);<BR> getch();<BR> closegraph();<BR> return 0;<BR> }<P> 上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化<BR>设置, 但Turbo C提供了一种更简单的方法, 即用gdriver= DETECT 语句后再跟<BR>initgraph()函数就行了。采用这种方法后, 上例可改为:<BR> <BR> 例6.<BR> #include <graphics.h>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -