C语言图形函数编程模板的详解.doc.pdf

上传人:tbuqq 文档编号:5615863 上传时间:2020-07-02 格式:PDF 页数:4 大小:221.97KB
返回 下载 相关 举报
C语言图形函数编程模板的详解.doc.pdf_第1页
第1页 / 共4页
C语言图形函数编程模板的详解.doc.pdf_第2页
第2页 / 共4页
C语言图形函数编程模板的详解.doc.pdf_第3页
第3页 / 共4页
C语言图形函数编程模板的详解.doc.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言图形函数编程模板的详解.doc.pdf》由会员分享,可在线阅读,更多相关《C语言图形函数编程模板的详解.doc.pdf(4页珍藏版)》请在三一文库上搜索。

1、Turbo C 提供了非常丰富的图形函数,所有图形函数的原型均在graphics, h中,本节主要介绍图 形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出 等函数。另外,使用图形函数时要确保有显示器图形驱动程序*BGI,同时将集成开发坏境 Options/Linker 中的 Graphics lib 选为 on,只有这样才能保证正确使用图形函数。 1. 图形模式的初始化 不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器,在不同模式下也有不 同分辨率。因此,在屏幕作图之前,必须根据显示器适配器种类将显示器设置成为某种图形模 式,在未设置图形模式之前,微

2、机系统默认屏幕为文本模式(80列,25行字符模式 ), 此时所有图 形函数均不能工作。设置屏幕为图形模式,可用下列图形初始化惭数: void far initgraph(int far *gdriver, int far *gmode, char *path); 其屮 gdriver 和 gmode分别表示图形驱动器和模式, path是指图形驱动程序所在的目录路 径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。 图形驱动程序由 Turbo C出版商提供,文件扩展名为.BGI。根据不同的图形适配器有不同 的图形驱动程序。例如对于EGA、VGA 图形适配器就调用驱动程序EGAVGA.B

3、GL 表 2.图形驱动器、模式的符号常数及数值 图形驱动器 (gdriver) 图形模式 (gmode) ?色调分辨率 符号常数数值符号常数数值 VGA 9 VGALO 0 16色 640*200 VGAMED 1 16 色 640*350 VGAHI 2 16 色 640*480 PC3270 10 PC3270HI 0 2 色720*350 DETECT 0用于硬件测试 例 4. 使用图形初始化函数设置VGA 高分辨率图形模式 #include int main() int gdriver, gmode; gdriver=VGA; gmode=VGAHI; initgraph( bar3d

4、(100, 100, 300, 250, 50, 1); /* 画一长方体勺 getch(); closegraph(); return 0; 有时编程者并不知道所用的图形显示器适配器种类,或者需要将编写的程序用于不同图形 驱动 S, Turbo C提供了一个白动检测显示器硬件的函数,其调用 格式为: void far detectgraph(i*gdriver, *gmode); 其中 gdriver 和 gmode的意义与上面相同。 例 5.自动进行硬件测试后进行图形初始化 # include int main() int gdriver, gmode; detectgraph( /* 自

5、动测试硬件 */ printf(“the graphics driver is %d, mode is %dn“, gdriver, gmode); /* 输出测试结 果*/ getch(); initgraph( /* 根据测试结果初始化图形勺 bar3d(10, 10, 130, 250, 20, 1); getch(); closegraph(); return 0; 上例程序中先対图形显示器自动检测,然后再用图形初始化函数进行初始化设置,但 Turbo C 提供了一种更简单的方法,即用gdriver= DETECT 语句后再跟 initgraph()函数就 行了。采用这 种方法后,上例

6、可改为: 例 6. # include int main() int gdriver=DETECT, gmode; initgraph( bar3d(50, 50, 150, 30, 1); getch(); closegraph(); return 0; 另 夕 卜 , Turbo C 提 供 了 退 出 图 形 状 态 的 函 数 closegraph(),其 调 用 格 式 为 : void far closegraph(void);调用该函数后可退出图形状态而进入文本方式(Turbo C 默认方式 ) ,并释放 用于 保存图形驱动程序和字体的系统内存。 2.独立图形运行程序的建立 Tu

7、rbo C对于用 initgraph()函数直接进行的图形初始化程序,在编译和链接时并没有将相应的驱 动程序住 .BGI)装入到执行程序,当程序进行到intitgraph()语句吋,再从该函数中第三个形式参 数 char *path中所规定的路径中去找相应的驱动程序。若没有驱动程序,则在 C:TC 屮去找,如 C:TC 屮仍没有或 TC 不存在,将会出现错误: BGI Error: Graphics not initialized (use Initgraph 1) 因此, 为了使用方便,应该建立一个不需要驱动程序就能独立运行的可执行图形程序, Turbo C 中规定用下述步骤 ( 这里以 E

8、GA、VGA 显示器为例 ) : 1. 在 C:TC 子目录下输入命令 : BGIOBJ EGAVGA 此命令将驱动程序EGAVGA.BGI 转换成 EGAVGA.OBJ 的目标文件。 2. 在 C:TC 子目录下输入命令汀LIB LIBGRAPHICS.LIB+EGAVGA 此命令的意思是将EGAVGA.OBJ 的目标模块装到GRAPHICS.LIB 库文件中。 3. 在程序中 initgraph()函数调用之前加上一句:registerbgidriver(EGAVGA_driver): 该函数告诉连接程序在连接时把EGAVGA 的驱动程序装入到用户的执行程序中。 经过上面处理,编译链接后的

9、执行程序可在任何目录或其它兼容机上运行。假设已作了前 两个步骤,若再向例6 中加 registerbgidriver()g数则变成: 例 7: # include # include int main() int gdriver 二 DETECT,gmode; registerbgidriver(EGAVGA_driver): / * 建立独立图形运行程序 */ initgraph( gdriver, gmode,“c:tcM); bar3d(50,50,250,150,20,1); getch(); closegraph(); return 0; 上例编译链接后产生的执行程序可独立运行。 如

10、不初始化成 EGA 或 CGA 分辨率,而想初始化为CGA 分辨率,则只需要将上述步骤中 有 EGAVGA 的地方用 CGA 代替即可。 综合上面的内容,我们就可以建立如下的图形编程模板: /* WIN-TC BGI 图形编程模板 */ #include HConio.hn #include Hgraphics.h H #define closegr closegraph * 子函数 initgr: * 功能: BGI 初始化 void initgr(void) int gd = DETECT, gm = 0; /* 和 gd 二 VGA,gm 二 VGAHI 是同样效果 */ registerbgidriver(EGAVGA_driver);/* 注册 BGI 驱动后可以不需要 .BGI 文件的支持运行 */ initgraph( /* BGI 初始化 */ /* 此部分添加你自己的代码,例如 putpixeI(100, 200, RED); line(25, 25, 220, 220); circle(100, 100, 50); 等等 */ getch(); /*暂停一下,看看前而绘图代码的运行结果*/ closegr(); /*恢复 TEXT 屏幕模式 */ return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1