📄 编程天地--c语言--c语言图形编程(函数简介).htm
字号:
if(driver==-2)<BR> {<BR>
printf(no graphics adapter in the
computer);<BR>
exit(1);<BR> }<BR><BR><FONT color=#0000ff>2. initgraph()
图形初始化函数</FONT><BR>功能:
函数initgraph()用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式。<BR>用法:
该函数调用方式为void initgraph(int *driver,int *mode,char *path);<BR>说明: 1)
函数中参数driver指向图形驱动程序(或者等价值)。<BR>
在头部文件graphics.h中定义了图形驱动程序的宏名与其等价 ,如下:<BR>宏
名
等价值<BR>------------------------------<BR>DETECT
0<BR>CGA
1<BR>MCGA 2<BR>EGA
3<BR>EGA64
4<BR>EGAMONO 5<BR>IBM8514 6<BR>HERCMONO
7<BR>ATT400
8<BR>VGA
9<BR>PC3270
10<BR>--------------------------------<BR><BR>注:在现在的计算机中,上表中的许多显示卡已经过时,不再使用。<BR><BR>这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值0)时,initgraph()函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。<BR>2)参数mode指向显示模式或用等价值(风表1-5),mode所指的值必须是有效模式之一。<BR>3)参数path指向图形驱动程序所在的路径,例如path=C:\TC\BG1.若没有指定路径,就在当前目录下寻找。<BR>
一般图形驱动程序包含在.BGI文件中,这些文件是系统可以得到的。这个函数对应的头文件是graphics.h。<BR>返回值:
无<BR>例: 调用initgraph()自动检测硬件图形系统,并选用最大分辨率显示模式。<BR> init
drver,mode;<BR> driver=DETECT;<BR>
mode=0;<BR>
initgraph(&driver,&mode,);<BR><BR><FONT color=#0000ff>3.
getdrivername() 获取图形驱动程序名的</FONT><FONT
color=#0000ff>指针</FONT><BR>功能:
函数getdrivername()返回指向当前图形驱动程序名的指针。<BR>用法: 此函数调用方式为char
*getdrivername(void);<BR>说明:
本函数可以用来检测显示卡,但只能在initgraph()设置图形驱动程序和显示模式之后调用。<BR>
该函数相应的头文件为graphics.h<BR>返回值:
返回一指针,指向含有当前图形驱动程序名的字符串。<BR>例: 显示当前图形驱动程序名:<BR>
#include<graphics.h><BR>
#include<stdio.h><BR> void main()<BR>
{<BR> int
graphdriver=DETECT,graphmode;<BR> char
*s;<BR>
initgraph(&graphdriver,&graphmode,);<BR>
s=getdrivername();<BR> outtext(Using
driver:);<BR>
outtext(s);<BR>
getch();<BR>
closegraph();<BR> }<BR><BR><FONT color=#0000ff>4.
getgraphmode() 获取图形模式函数</FONT><BR>功能:
函数getgrapgmode()返回当前图形模式。<BR>用法: 该函数调用方式为int
getgraphmode(void);<BR>说明:
getgraphmode()函数无参数调用。<BR>
这个函数对应的头文件是graphics.h<BR>返回值:
返回initgraph()或setgraphmode()所设置的当前图形模式值。<BR>例:
显示当前图形模式的代码:<BR> printf(graphics mode is
%d,getgraphmode());<BR><BR><FONT color=#0000ff>5.
getmoderange()获取模式值范围函数</FONT><BR>功能:
函数getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式值。<BR>用法: 函数调用方式为 void
getmoderange(int driver,int *lowmode,int himode);<BR>说明:
参数driver是用来调用此函数时,指定图形驱动程序等价值或宏名。<BR>
其有效值如下:<BR>
-------------------------------------<BR> 宏
名 等价值<BR> ------------------------------------- <BR>
DETECT
0<BR> CGA 1<BR> MCGA 2<BR> EGA 3<BR> EGA64
4<BR> EGAMONO 5<BR> IBM8514
6<BR> HERCMONO
7<BR> ATT400 8<BR> VGA 9<BR> PC3270 10<BR> -------------------------------------<BR>
注:上表中的许多显示卡在现在的计算机上已经过时,仅作参考。<BR><BR>
该函数想应的头文件为graphics.h<BR>返回值:
返回的最小和最大有效值存放在参数指针lowmode和himode分别指向的整型变量中。<BR>例:
显示当前图形硬件的显示模式的范围值:<BR> #includegraphics.h<BR> void
main()<BR> {<BR> int
driver,mode;<BR> int
low,high;<BR> mode=0;<BR><STRONG> </STRONG>initgraph(&driver,&mode,);<BR> getmoderange(driver,&low,&high);<BR> printf(mode
range:%d--%d,low,high);<BR> getch();<BR> rstorecrtmode();<BR> }<BR><BR><FONT
color=#0000ff>6. getmaxmode()获取最大显示模式函数</FONT><BR>功能:
函数getmaxmode()返回当前加载的图形驱动程序所支持的最大有效显示模式。<BR>用法: 函数调用方式为int
getmaxmode(void);<BR>说明:本函数无参数调用,返回图形驱动程序所支持的最大显示模式,所有图形驱动程序支持从0到getmaxmode()函数返回值中的任一整
数值(对应的显示模式)。<BR> 这个函数对应的头文件是graphics.h<BR>返回值:返回图形驱动程序所支持的显示模式最大值。<BR>例:
显示当前最大显示模式:<BR> printf(The maxmode of this driver
is %d\n,getmaxmode());<BR><BR><FONT color=#0000ff>7.
getmodename()获取显示模式名函数</FONT><BR>功能:
函数getmodename()可获取当前图形驱动程序支持的指定显示模式的名字。<BR>用法: 此函数调用方式为char
*getmodename(int modecode);<BR>说明:
参数modecode为整型值。用以指定一显示模式值调用该函数。<BR> 这个函数对应的头文件graphics.h<BR>返回值: 返回指定模式值的显示模式名。<BR>例:
显示当前最大显示模式名:<BR>#include<graphics.h><BR>#include<stdio.h><BR>void
main()<BR>{<BR> int
graphdriver=DETECT,graphmode;<BR> int
modecode;<BR> char
*s;<BR> initgraph(&graphdriver,&graphmode,);<BR> modecode=getmaxmode();<BR> s=getmodename(modecode);<BR> outtext(The
maxmode name
is:);<BR> outtext(s);<BR> getch();<BR> closegraph();<BR>}<BR><BR><FONT
color=#0000ff>8. graphdefaults()图形设置复位缺省值函数</FONT><BR>功能:
函数grpahdefaults()把所有图形设置复位为它们的缺省值,这包括把图形视口复位为全屏幕;当前位置定位在0,0;调色板、背景色和绘图色都被复位;填充颜色、填
充图样、文本文字和排齐方式都返回到它位的缺省值。<BR>用法: 此函数调用方式为void
graphdefaults(void);<BR>说明:
该函数无参数调用。<BR> 这个函数相应的头文件为graphics.h<BR>返回值:
无<BR>例:
将图形系统恢复为其缺省值:<BR> graphdefaults();<BR><BR><FONT
color=#0000ff>9. setgraphmode()
设置图形模式函数</FONT><BR> 功能:
函数setgraphmode()用当前图形驱动程序有效的图形模式调用,一旦被调用,setgraphmode()选择一个新的图形模式。注意,图形显示模式必须事先由initgraph()初始化。<BR>用法:
该函数调用方式为void setgraphmode(int mode);<BR>说明:
参数mode调用时为指定的模式值。<BR> 此函数相应的头部文件是graphics.h<BR>返回值: 无<BR>例:
把VGA图形卡设置为VGAMED模式:<BR> setgraphmode(VGAMED);
// 图形系统已经初始化<BR><BR><FONT color=#0000ff>10. restorecrtmode()
恢复文本显示模式函数</FONT><BR>功能:
函数restrecrtmode()将显示模式恢复到调用initgraph()时检测出的初始文本模式。<BR>用法:
这个函数调用方式为void
restorecrtmode(void);<BR>说明: 函数restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换。<BR> 此函数对应的头文件为graphics.h<BR>返回值:
无<BR>例:
恢复显示模式为初始文本模式:<BR> restorecrtmode();<BR><BR><FONT
color=#0000ff>11. graphresult() 图形操作结果函数</FONT><BR>功能:
函数graphresult()函数返回最后一次图形操作的代码。<BR>用法: 此函数调用方式为int
graphresult(void);<BR>说明:
C为图形设置了代码,它们是从-15到0的整数值。其含义见表1-6。<BR> 调用该函数时,出错状态被复位为0,所以返回值(代码)最好存于变量中,以供需要时检测,<BR>
进行下一步图形操作。<BR> <BR>
<TABLE border=1 44px HEIGHT: 400px;>
<TBODY>
<TR>
<TD> 图形操作信息名称</TD>
<TD>代码</TD>
<TD>含 义</TD></TR>
<TR>
<TD> grOK<BR>
grNoInitGraph<BR> grNoDetected<BR>
grFileNoFound<BR> grInvalidDriver<BR>
grNoLoadMem<BR> grNoScanMem<BR>
grNoFloadMem<BR> grFontNotFound<BR>
grNoFontMem<BR> grInvalidMode<BR>
grError<BR> grIOerror<BR>
grInvalidFont<BR> grInvalidDeviceNum</TD>
<TD>0<BR>-1<BR>-2<BR>-3<BR>-4<BR>-5<BR>-6<BR>-7<BR>-8<BR>-9<BR>-10<BR>-11<BR>-12<BR>-13<BR>-14<BR>-15<BR></TD>
<TD>成功<BR>没有图形初始化<BR>没有检测到图形硬件<BR>没有找到图形驱动文件<BR>无效图形驱动程序<BR>没有足够内存装入图形驱动程序<BR>Scan填
充内存不足<BR>Flood填
充内存不足<BR>没有找到字体文件<BR>没有足够内存用于装字体文件<BR>无效图形模式<BR>一般图形错误<BR>输入输出错误<BR>无效字体文件<BR>无效字体号<BR>无效设备号<BR></TD></TR></TBODY></TABLE><BR>这个函数对应的头部文件是graphics.h<BR>返回值:
返回最后一次图形操作结果相应的代码。<BR>例:
调用graphresult()函数的实例见下面grapherrormsg()函数的例子。<BR><BR><FONT
color=#0000ff>12. grpaherrormsg() 图形错误信息函数<BR></FONT>功能:
函数grapherrormsg()返回指向出错代码相应的错误信息字符串的指针。<BR>用法: 此函数调用方式为char
*grapherrormsg(int errcode);<BR>说明:
参数errcode值,即出错代码由调用函数graphresult()获得。这里所有出错代码及相应的错误信息如表1-6中所述。<BR>
该函数相应的头文件是grpahics.h<BR>返回值: 返回一个指向该出错代码相应的错误信息字符串的指针。<BR>例:
用文字形式显示有关出错代码相应的错误信息:<BR> int errorcode;<BR>
errorcode=graphresult();<BR>
printf(%s,grapherrormsg(errcode));<BR><BR><FONT color=#0000ff>13.
setgraphbufsize()设置图形缓冲区大小函数</FONT><BR>功能:
函数setgraphbufsize()用来设置有的图形函数(如floodfill等)所要用到的内存缓冲区大小。<BR>用法:
函数调用方式为unsigned setgraphbufsize(unsigned bufsize);<BR>说明:
这里无符号参数bufsize为所设置的缓冲区大小。<BR>
一般不需要用到该函数,仅使用由initgraph()函数产生的内存缓冲区就够了,缓冲区大小缺省时为4KB(即4096个字节),足以用来填
充一个大约有650个顶点的多边形,但是为了节省内存,用户可以减少缓冲区的大小,或者由于需要更多的缓冲区内存,这时可用函数setgraphbufsize()来增加缓冲区大小。注意,使用setgraphbufsize()函数必须在调用initgraph()之前。<BR>返回值:
返回先前定义的图形缓冲区字节数。<BR>例: 调用此函数设置图形缓冲区为8KB字节:<BR>
setgraphbufsize(0x2000);<BR><BR><FONT color=#0000ff>14.
setactivepage() 设置可输出显示页函数</FONT><BR>功能:
函数setactiveage()设置用作图形输出的显示页。<BR>用法: 这个函数调用方式为void setactivepage(int
pagenum);<BR>说明:
参数pagenum为选择的显示页号,如果调用成功,那么后续图形输出就写到选定的输出页上。缺省时是以0页作为当前输出页。该函数只在图形驱动程序及其显示模式支持多个显示页时才起作用。<BR>
此函数相应的头文件为graphics.h<BR>返回值: 无<BR>例: 设置1页为输出显示页:<BR>
setactivepage(1);<BR><BR><FONT color=#0000ff>15. setvisualpage()
设置可见显示页数</FONT><BR>功能: 函数setvisualpage()设置屏幕上可见的显示页。<BR>用法:
函数调用方式为void setvisualpage(int pagenum);<BR>说明:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -