c语言第11章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
registerbgidriver(EGAVGA_driver) 该函数告诉连接程序,在连接时把EGAVGA的驱动
经过上面处理,编译连接后的执行程序可在任何目录
例题11.3 独立图形运行程序(假设已完成了前两个 步骤)。 程序代码如下。
#include <graphics.h int main() {
有时,编程者并不知道所用的图形显示器适配器种 类,或者需要将编写的程序用于不同的图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数,其 调用格式为
void far detectgraph(int *gdriver, *gmode);
其中,gdriver和gmode
例题11.2 自动进行硬件测试后进行图形初始化。
(3)屏幕及视窗管理函数。可以管理屏幕、视窗、
(4)颜色控制函数。可以获取颜色信息并设定颜色
(5)图形方式正文输出函数。可以获取/设置正文的
(6)状态查询函数。可以报告出错代码及相应的信
所有图形函数的原型均在graphics.h中, 本章主要介绍 图形模式的初始化,独立图形程序的建立、基本图 形功能、图形窗口,以及图形模式下的文本输出等 函数。注意,使用图形函数时应确保有显示器图形驱 动程序*.bgi,同时将集成开发环境Options/Linker中的 Graphics lib选为on,只有这样才能保证正确地使用图 形函数。
BGI Error: Graphics not initialized (use initgraph)
因此,为了使用方便,应该建立一个不需要驱动程 序就能独立运行的可执行图形程序。Turbo C中规定 用下述步骤(这里以EGA和VGA显示器为例)
(1) 在C:\TC子目录下输入命令BGIOBJ EGAVGA, 此命令将驱动程序EGAVGA.BGI转换成 EGAVGA.OBJ (2) 在C:\TC子目录下输入命令TLIB LIB\GRAPHICS.LIB+EGAVGA,此命令的意思是 将EGAVGA.OBJ的目标模块装入GRAPHICS.LIB库 文件中。 (3) 在程序中initgraph()函数调用之前加上语句
例题11.1 使用图形初始化函数设置VGA高分辨率图 形模式。程序代码如下。
#include <graphics.h int main() {
int gdriver, gmode; gdriver = VGA; gmode =VGAHI; initgraph(&gdriver, &gmode, "c:\\tc"); bar3d(100, 100, 300, 250, 50, 1); /* 画一长方体 */ getch(); closegraph(); /* 退出图形状态 */ return 0; }
int driver = DETECT, mode; registerbgidriver(EGAVGA_driver); /*建立独立图形运行程序 */ initgraph( driver, mode, "c:\\tc"); bar3d(50, 50, 250, 150, 20, 1); getch(); closegraph(); return 0; }
void far initgraph(int far *driver, int far *mode, char
*path);
其中,driver和mode分别为图形驱动器和模式,path 为图形驱动程序所在的目录路径。有关图形驱动器、 图形模式的符号常数及对应的分辨率见表11.1(见书 276页)。图形驱动程序由Turbo C出版商提供,文 件扩展名为.BGI。根据不同的图形适配器有不同的 图形驱动程序。例如对于EGA和VGA,图形适配器 就调用驱动程序EGAVGA.BGI
11.2 图形函数
显示器的工作方式有两种,一种是文本方式或字符 显示方式,它是通过所存放字符的字模在屏幕上加 以显示的;另一种是图形方式,它以像素为基本单 位,直接显示所绘制的图形。在图形方式下,显示 器的坐标以屏幕左上角点为原点(0,0),向右为 正x轴方向,向下为正y
1. 图形模式的初始化
不同的显示器适配器有不同的图形分辨率,即使同 一显示器适配器,在不同模式下也有不同的分辨率。 因此,在屏幕作图之前,必须根据显示器适配器的 种类将显示器设置成某种图形模式。在未设置图形 模式之前,计算机系统默认屏幕为文本模式(80列, 25行字符模式),此时所有图形函数均不能工作。
bar3d(10, 10, 130, 250, 20, 1); getch(); closegraph(); return 0;
}
2.
对于用initgraph()函数直接进行图形初始化的程序, Turbo C在编译和链接时并没有将相应的驱动程序 (*.BGI)装入执行程序,当程序进行到initgraph()语句 时,再从该函数中第3个形式参数char *path中所规 定的路径中去寻找相应的驱动程序。若没有驱动程 序,则在C:\TC中去找,例如C:\TC中仍没有或不存 在TC,将会出现错误信息:
第11章 图形处理
11.1 概述 11.2 图形函数
11.1 概述
Turbo C提供了非常丰富的图形函数,这些函数主要
(1)图形系统控制函数。可以实现图形系统初始化, 将硬件置于图形方式、改变图形模式、关闭图形系
(2)绘图及填充函数。可以实现绘制彩色的线、弧、 圆、矩形、扇形、多边形、三维直方图等,可以改 变线型、画线的粗细,还可根据预定义模式或自定
#include <graphics.h> int main() {
int gdriver, gmode; detectgraph(&gdriver, &gΒιβλιοθήκη Baiduode); /* 自动测试硬件 */ printf("the graphics driver is %d, mode is %d\n", gdriver,gmode); /* 输出测试结果 */ getch(); initgraph(&gdriver, &gmode, "c:\\tc"); /* 根据测试结果初始化图形 */
相关文档
最新文档