c语言画图.docx

上传人:b****5 文档编号:15205014 上传时间:2023-07-02 格式:DOCX 页数:10 大小:20KB
下载 相关 举报
c语言画图.docx_第1页
第1页 / 共10页
c语言画图.docx_第2页
第2页 / 共10页
c语言画图.docx_第3页
第3页 / 共10页
c语言画图.docx_第4页
第4页 / 共10页
c语言画图.docx_第5页
第5页 / 共10页
c语言画图.docx_第6页
第6页 / 共10页
c语言画图.docx_第7页
第7页 / 共10页
c语言画图.docx_第8页
第8页 / 共10页
c语言画图.docx_第9页
第9页 / 共10页
c语言画图.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言画图.docx

《c语言画图.docx》由会员分享,可在线阅读,更多相关《c语言画图.docx(10页珍藏版)》请在冰点文库上搜索。

c语言画图.docx

c语言画图

C语言图形编程——图形显示)

一确定显示卡

二选择显示模式

三图形显示

20.detectgraph()显示卡检测函数

21.initgraph()图形初始化函数

22.getdrivername()获取图形驱动程序名的指针

23.getgraphmode()获取图形模式函数

24.getmoderange()获取模式值范围函数

25.getmaxmode()获取最大显示模式函数

26.getmodename()获取显示模式名函数

27.graphdefaults()图形设置复位缺省值函数

28.setgraphmode()设置图形模式函数

29.restorecrtmode()恢复文本显示模式函数

30.graphresult()图形操作结果函数

31.grpaherrormsg()图形错误信息函数

32.setgraphbufsize()设置图形缓冲区大小函数

33.setactivepage()设置可输出显示页函数

34.setvisualpage()设置可见显示页数

35.closegraph()关闭图形模式函数

一确定显示卡

微机系统显示部分由显示器(monitor)和显示卡(adapter)两部分组成.显示器是独立于主机的一种外部设备,显示卡或称显示适配卡,也有的称图形卡,是插在主机上的一块电路板.但也有的显示卡与主机板设计在一起.显示卡包括寄存器组,存储器和控制电路三大部分.其中存储器又包括显示RAM和ROMBIOS两部分,微机对显示屏幕的所有操作都是通过显示卡来实现的.因此要进行图形显示,首先要确定计算机上安装的是何种显示卡.一种方法是询问计算机或终端使用者,确定将要使用的显示卡类型.这种方法很难,因为甚至专业程序员也不总是能确定他正在使用什么样的硬件.另一种方法是用软件查询硬件以识别当前的配置.如果有一些识别硬件的标准,这就很简单了.在BorlandC中对现在所使用的各种显示卡提供了支持,这只要调用detectgraph()函数就可以了,该函数为程序员确定计算机上使用的显示卡类型.

二选择显示模式

显示模式是指显示卡支持的分辨率与相应的颜色配置.每台计算机都配置了某种类型显示卡,可以为该显示卡指定显示模式.

三图形显示

进行图形显示首先要确定显示卡,然后选择其显示模式.这些工作都可以调用图形功能函数来完成,其实就是把适合于显示卡的图形驱动程序装入内存.如果图形驱动程序未装入内存,那么图形函数就不能操作.

20.detectgraph()显示卡检测函数

功能:

函数detectgraph()在计算机上安装有显示卡的情况下,测定其显示卡的类型.

用法:

此函数调用方式为voiddetectgraph(int*driver,int*mode);

说明:

函数把driver所指向的整型变量设置为图形驱动程序的代码,把mode所指向的整型变量设置为显示卡支持的最高有效模式(即该显示卡能支持的最高分辨率).

该函数相应的头文件为graphics.h

返回值:

返回适合于该显示卡的图形驱动程序的代码(也称等价值),并存放在driver指向的变量中.若计算机系统中无图形硬件,则由driver指向的变量设置为-2.

例:

检测计算机是否装有显示卡:

intdriver,mode;

detectgraph(&driver,&mode);

if(driver==-2)

{

printf("nographicsadapterinthecomputer");

exit

(1);

}

21.initgraph()图形初始化函数

功能:

函数initgraph()用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式.

用法:

该函数调用方式为voidinitgraph(int*driver,int*mode,char*path);

说明:

1)函数中参数driver指向图形驱动程序(或者等价值).

在头部文件graphics.h中定义了图形驱动程序的宏名与其等价,如下:

宏名等价值

------------------------------

DETECT0

CGA1

MCGA2

EGA3

EGA644

EGAMONO5

IBM85146

HERCMONO7

ATT4008

VGA9

PC327010

--------------------------------

注:

在现在的计算机中,上表中的许多显示卡已经过时,不再使用.这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值0)时,initgraph()函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式.

2)参数mode指向显示模式或用等价值(风表1-5),mode所指的值必须是有效模式之一.

3)参数path指向图形驱动程序所在的路径,例如path="C:

\TC\BG1".若没有指定路径,就在当前目录下寻找.一般图形驱动程序包含在.BGI文件中,这些文件是系统可以得到的.

这个函数对应的头文件是graphics.h.

返回值:

例:

调用initgraph()自动检测硬件图形系统,并选用最大分辨率显示模式.

initdrver,mode;

driver=DETECT;

mode=0;

initgraph(&driver,&mode,"");

22.getdrivername()获取图形驱动程序名的指针

功能:

函数getdrivername()返回指向当前图形驱动程序名的指针.

用法:

此函数调用方式为char*getdrivername(void);

说明:

本函数可以用来检测显示卡,但只能在initgraph()设置图形驱动程序和显示模

式之后调用.

该函数相应的头文件为graphics.h

返回值:

返回一指针,指向含有当前图形驱动程序名的字符串.

例:

显示当前图形驱动程序名:

#include

#include

voidmain()

{

intgraphdriver=DETECT,graphmode;

char*s;

initgraph(&graphdriver,&graphmode,"");

s=getdrivername();

outtext("Usingdriver:

");

outtext(s);

getch();

closegraph();

}

23.getgraphmode()获取图形模式函数

功能:

函数getgrapgmode()返回当前图形模式.

用法:

该函数调用方式为intgetgraphmode(void);

说明:

getgraphmode()函数无参数调用.

这个函数对应的头文件是graphics.h

返回值:

返回initgraph()或setgraphmode()所设置的当前图形模式值.

例:

显示当前图形模式的代码:

printf("graphicsmodeis%d",getgraphmode());

24.getmoderange()获取模式值范围函数

功能:

函数getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式值.

用法:

函数调用方式为voidgetmoderange(intdriver,int*lowmode,inthimode);

说明:

参数driver是用来调用此函数时,指定图形驱动程序等价值或宏名.

其有效值如下:

-------------------------------------

宏名等价值

-------------------------------------

DETECT0

CGA1

MCGA2

EGA3

EGA644

EGAMONO5

IBM85146

HERCMONO7

ATT4008

VGA9

PC327010

-------------------------------------

注:

上表中的许多显示卡在现在的计算机上已经过时,仅作参考.

该函数想应的头文件为graphics.h

返回值:

返回的最小和最大有效值存放在参数指针lowmode和himode分别指向的整型

变量中.

例:

显示当前图形硬件的显示模式的范围值:

#include"graphics.h"

voidmain()

{

intdriver,mode;

intlow,high;

mode=0;

initgraph(&driver,&mode,"");

getmoderange(driver,&low,&high);

printf("moderange:

%d--%d,low,high);

getch();

rstorecrtmode();

}

25.getmaxmode()获取最大显示模式函数

功能:

函数getmaxmode()返回当前加载的图形驱动程序所支持的最大有效显示模式.

用法:

函数调用方式为intgetmaxmode(void);

说明:

本函数无参数调用,返回图形驱动程序所支持的最大显示模式,所有图形驱动程

序支持从0到getmaxmode()函数返回值中的任一整数值(对应的显示模式).

这个函数对应的头文件是graphics.h

返回值:

返回图形驱动程序所支持的显示模式最大值.

例:

显示当前最大显示模式:

printf("Themaxmodeofthisdriveris%d\n",getmaxmode());

getmodename()获取显示模式名函数

功能:

函数getmodename()可获取当前图形驱动程序支持的指定显示模式的名字.

用法:

此函数调用方式为char*getmodename(intmodecode);

说明:

参数modecode为整型值.用以指定一显示模式值调用该函数.

这个函数对应的头文件graphics.h

返回值:

返回指定模式值的显示模式名.

例:

显示当前最大显示模式名:

#include

#include

voidmain()

{

intgraphdriver=DETECT,graphmode;

intmodecode;

char*s;

initgraph(&graphdriver,&graphmode,"");

modecode=getmaxmode();

s=getmodename(modecode);

27.graphdefaults()图形设置复位缺省值函数

功能:

函数grpahdefaults()把所有图形设置复位为它们的缺省值,这包括把图形视口复位为全屏幕;当前位置定位在0,0;调色板,背景色和绘图色都被复位;填充颜色,填充图样,文本文字和排齐方式都返回到它位的缺省值.

用法:

此函数调用方式为voidgraphdefaults(void);

说明:

该函数无参数调用.

这个函数相应的头文件为graphics.h

返回值:

例:

将图形系统恢复为其缺省值:

graphdefaults();

28.setgraphmode()设置图形模式函数

功能:

函数setgraphmode()用当前图形驱动程序有效的图形模式调用,一旦被调用,setgraphmode()选择一个新的图形模式.注意,图形显示模式必须事先由initgraph()初始化.

用法:

该函数调用方式为voidsetgraphmode(intmode);

说明:

参数mode调用时为指定的模式值.

此函数相应的头部文件是graphics.h

返回值:

例:

把VGA图形卡设置为VGAMED模式:

setgraphmode(VGAMED);//图形系统已经初始化

29.restorecrtmode()恢复文本显示模式函数

功能:

函数restrecrtmode()将显示模式恢复到调用initgraph()时检测出的初始文本模式.

用法:

这个函数调用方式为voidrestorecrtmode(void);

说明:

函数restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换.

此函数对应的头文件为graphics.h

返回值:

例:

恢复显示模式为初始文本模式:

restorecrtmode();

30.graphresult()图形操作结果函数

功能:

函数graphresult()函数返回最后一次图形操作的代码.

用法:

此函数调用方式为intgraphresult(void);

说明:

C为图形设置了代码,它们是从-15到0的整数值.其含义见表1-6.调用该函数时,出错状态被复位为0,所以返回值(代码)最好存于变量中,以供需要时检测,进行下一步图形操作.

图形操作信息名称代码含义

grOK

grNoInitGraph

grNoDetected

grFileNoFound

grInvalidDriver

grNoLoadMem

grNoScanMem

grNoFloadMem

grFontNotFound

grNoFontMem

grInvalidMode

grError

grIOerror

grInvalidFont

grInvalidDeviceNum0

成功

没有图形初始化

没有检测到图形硬件

没有找到图形驱动文件

无效图形驱动程序

没有足够内存装入图形驱动程序

Scan填充内存不足

Flood填充内存不足

没有找到字体文件

没有足够内存用于装字体文件

无效图形模式

一般图形错误

输入输出错误

无效字体文件

无效字体号

无效设备号

这个函数对应的头部文件是graphics.h

返回值:

返回最后一次图形操作结果相应的代码.

例:

调用graphresult()函数的实例见下面grapherrormsg()函数的例子.

31.grpaherrormsg()图形错误信息函数

功能:

函数grapherrormsg()返回指向出错代码相应的错误信息字符串的指针.

用法:

此函数调用方式为char*grapherrormsg(interrcode);

说明:

参数errcode值,即出错代码由调用函数graphresult()获得.这里所有出错代码及相应的错误信息如表1-6中所述.

该函数相应的头文件是grpahics.h

返回值:

返回一个指向该出错代码相应的错误信息字符串的指针.

例:

用文字形式显示有关出错代码相应的错误信息:

interrorcode;

errorcode=graphresult();

printf(%s",grapherrormsg(errcode));

32.setgraphbufsize()设置图形缓冲区大小函数

功能:

函数setgraphbufsize()用来设置有的图形函数(如floodfill等)所要用到的内存缓冲区大小.

用法:

函数调用方式为unsignedsetgraphbufsize(unsignedbufsize);

说明:

这里无符号参数bufsize为所设置的缓冲区大小.一般不需要用到该函数,仅使用由initgraph()函数产生的内存缓冲区就够了,缓冲区大小缺省时为4KB(即4096个字节),足以用来填充一个大约有650个顶点的多边形,但是为了节省内存,用户可以减少缓冲区的大小,或者由于需要更多的缓冲区内存,这时可用函数setgraphbufsize()来增加缓冲区大小。

注意,使用setgraphbufsize()函数必须在调用initgraph()之前.

返回值:

返回先前定义的图形缓冲区字节数.

例:

调用此函数设置图形缓冲区为8KB字节:

setgraphbufsize(0x2000);

33.setactivepage()设置可输出显示页函数

功能:

函数setactiveage()设置用作图形输出的显示页.

用法:

这个函数调用方式为voidsetactivepage(intpagenum);

说明:

参数pagenum为选择的显示页号,如果调用成功,那么后续图形输出就写到选定的输出页上.缺省时是以0页作为当前输出页.该函数只在图形驱动程序及其显示模式支持多个显示页时才起作

此函数相应的头文件为graphics.h

返回值:

例:

设置1页为输出显示页:

setactivepage

(1);

34.setvisualpage()设置可见显示页数

功能:

函数setvisualpage()设置屏幕上可见的显示页.

用法:

函数调用方式为voidsetvisualpage(intpagenum);

说明:

参数pagenum为设置的显示页号.缺省时是以0页作为当前可见页.调用这个函数和调用setactivepage()一样,仅在图形驱动程序及其显示模式支持多个显示页时才有效.用户可以用系统所支持的任何显示页,在它们之间切换,当然一次只能有一个显示页在屏幕上可见,有时需要在一页上建立后备图形葨图像,它在当时不显示,一旦需要时,可以马上切换到该页,如要实现动画效果,只需切换显示页号即可.用setvisualpage()函数选定实际显示在屏幕上的可见页,用setactivepage()函数选择当前图形输出页,从而实现图形页之间的显示切换,通常这两个函数都是缺省的,这时输出页就是可见页.若不绘制动画就不需要用到这两个函数.

这两个函数对应的头文件是graphics.h

返回值:

例:

设置可见页为第1页:

setvisualpage

(1);

35.closegraph()关闭图形模式函数

功能:

函数closegraph()将系统图形模式关闭,,复位到initgraph()初始文本模式,并且释放图形驱动程序,字体和内部缓冲区所占用的系统内存.

用法:

这个函数调用方式为voidclosegraph(void);

说明:

当用户的程序既用到图形输出又用到非图形输出时,应该调用此函数.特别是程序多次调用initgraph()函数的情况,要相应地调用closegraph函数,释放调用initgraph()所占用的内存,否则内存很快就满了,程序无法运行,如果程序结束,也可以用restorecrtmode()函数代替该函数,这样任何分配的内存都将释放.

此函数对应的头文件是graphics.h

返回值:

例:

关闭图形系统:

closegraph();

 

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2