c++initgraph函数_C作图与图形处理 1

古老的编译器,Turbo C具有丰富的作图功能。

显示器有两种工作方式:(640(列)*480(行))

文本方式和图形方式(作图方式)

文本方式是默认的工作方式,用来显示文字,以每个完整的字符为单位,一般一个屏幕25行80列(1列8个字节)字符。其中的25行,行与行之间还空了3行字符,其中开头和末尾特别地空了4行。

图形方式用来显示图形,以像素为单位(1 像素即为屏幕上的一个点)。

两种方式可以互相转换。

编写作图程序前,通常都要把屏幕设置为图形方式,在作图程序结束时 都要把显示器恢复成原来的显示方式即文本方式。

如何将屏幕设置为图形方式?

Answer:初始化 图形系统

“对显示适配器(显卡)进行初始化”,使之工作在图形方式。

需要使用在头文件 graphics.h中定义的一个初始化函数。

函数原型为:

void initgraph(int *gdriver,int *gmode,char *driver_path).

头文件graphics.h包含了所有绘图函数的定义以及相关的数据结构和常量。

initgraph( )函数的前两个参数是整型指针变量,它们分别对应显示适配器的 类型 和显示方式,第三个参数用来指明 显示驱动程序 所存储的路径。

类型

目前绝大多数显示适配器的类型都是 VGA

VGA(Video Graphics Array)线,包括VGA接口与连接的电缆,但通常指VGA接口,也叫D-Sub接口。VGA接口是显卡上输出模拟信号的接口,虽然液晶显示器可以直接接收数字信号,但很多低端产品为了与VGA接口显卡相匹配,因而采用VGA接口。VGA接口是一种D型接口,上面共有15针空,分成三排,每排五个。

显示方式

so,VGA支持的模式和分辨率(两者包含于显示方式)如下图所示:

1240508e417acf18037a08e0a3936318.png

分辨率越高,清晰度越大。

显卡驱动程序所存储的路径

指向驱动程 序的路径名可以是全路径名,也可以是空字符串。若是空字符串则表示驱动程序就 在当前目录下,

e.g.

c文件生成exe文件,而驱动程序和当前执行的exe文件在同一路径下,即可使用空字符串。

对于VGA,在Turbo C中的驱动程序是EGAVGA.BGI.

驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、“硬件和系统之间的桥梁”等。

对显示适配器进行初始化 源代码

int gdriver,gmode;

gdriver=VGA; //VGA其实是枚举常量

gmode=VGAHI;

initgraph(&gdriver,&gmode,"");

也可以:

int gdriver,gmode;

gdriver=DETECT; //设置为自检模式

initgraph(&gdriver,&gmode,"");

gdriver=DETECT;的作用是让系统自动检测显示适配器的类型,并将其分辨率置为最高。

作图之后可以使用函数closegraph()关闭作图方式以便使显示器恢复成文本方式.

在作图程序中,initgraph()和closegraph()两个函数总是成对出现的。

初始化后一般应清屏,要使用清屏函数,其原型是: void far cleardevice( );

还有一个函数 restorecrtmode()也可以使显示方式变回文本方式,与 closegraph()不同 的是,它并不释放内存中的显示驱动程序和字符集,仅仅是暂时回到文本方式,随时可用 setgraphmode()函数重新回到作图方式;而 closegraph()则是释放驱动程序和字符集,需要作图时必须重新用 initgraph()函数载入。

函数原型是:

void far restorecrtmode( );

void far setgraphmode(int mode); // mode: 一般取 VGAHI

后者在转回作图方式的同时还具有清屏功能。

程序形成的可执行exe文件若拷贝到其他机器上是否能运行?

2ef54db1d12da96dcf97ffd64769e567.png
c4870f3515fd9411a5b40774a0373aa7.png
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值