资源描述:
《c语言图形处理基本知识》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言图形处理基本知识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。根据不同的图形适配器有不同的图形驱动程序。
3、例如对于EGA、 VGA 图形适配器就调用驱动程序EGAVGA.BGI。 表2. 图形驱动器、模式的符号常数及数值例4. 使用图形初始化函数设置VGA高分辨率图形模式 #include int main() { int gdriver, gmode; gdriver=VGA; gmode=VGAHI; initgraph(&gdriver, &gmode, "c:\tc"); bar3d(100, 100, 300, 250, 50, 1);
4、 /画一长方体/ getch(); closegraph(); return 0; } 有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数, 其调用格式为: void far detectgraph(int gdriver, gmode); 其中gdriver和gmode的意义与上面相同。 例5. 自动进行硬件测试后进行图形初始化 #include int main() {
5、 int gdriver, gmode; detectgraph(&gdriver, &gmode); /自动测试硬件/ printf("the graphics driver is %d, mode is %d", gdriver, gmode); /输出测试结果/ getch(); initgraph(&gdriver, &gmode, "c:\tc"); / 根据测
6、试结果初始化图形/ bar3d(10, 10, 130, 250, 20, 1); getch(); closegraph(); return 0; } 上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化设置, 但Turbo C提供了一种更简单的方法, 即用gdriver= DETECT 语句后再跟initgraph()函数就行了。采用这种方法后, 上例可改为: 例6. #include int main() { int
7、 gdriver=DETECT, gmode; initgraph(&gdriver, &gmode, "c:\tc"); bar3d(50, 50, 150, 30, 1); getch(); closegraph(); return 0; } 另外, Turbo C提供了退出图形状态的函数closegraph(), 其调用格式为: void far closegraph(void);