2022年C图形编程 .pdf





《2022年C图形编程 .pdf》由会员分享,可在线阅读,更多相关《2022年C图形编程 .pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录目录 .1一、确定显示卡. 220.detectgraph()显示卡检测函数. 3二、选择显示模式.321.initgraph() 图形初始化函数. 422.getdrivername() 获取图形驱动程序名的指针. 523.getgraphmode()获取图形模式函数. 524.getmoderange()获取模式值范围函数.525.getmaxmode()获取最大显示模式函数.626.getmodename()获取显示模式名函数. 727.graphdefaults()图形设置复位缺省值函数. 728.setgraphmode()设置图形模式函数.829.restorecrtmode(
2、)恢复文本显示模式函数. 8三、图形显示.830.graphresult()图形操作结果函数. 831.grpaherrormsg()图形错误信息函数.932.setgraphbufsize()设置图形缓冲区大小函数. 933.setactivepage()设置可输出显示页函数.1034.setvisualpage()设置可见显示页数.1035.closegraph()关闭图形模式函数. 10(一) 、屏幕和视口设置与清除函数.1236.setviewport() 设置图形视口函数.1237.clearviewport() 清除图形视口函数.1238.cleardevice()清除屏幕函数.1
3、239.getviewsettings() 获取图形视口设置函数. 13(二) 、调色板和颜色函数. 1340.setpalette()设置调色板函数. 1341.setallpalette()设置整个调色板函数. 1442.setbackcolor()设置背景颜色函数.1443.setcolor()设置颜色函数.1544.getbkcolor() 返回背景色函数.1645.getcolor() 返回当前绘图颜色. 1646.getmaxcolor() 返回最大颜色值函数. 1647.getpalette()获取调色板函数.1748.getpalettesize()返回调色板大小函数. 184
4、9.getdefaultpalette() 获取缺省调色板函数19(三) 、屏幕位置函数20名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 31 页 - - - - - - - - - 50.getmaxx()返回最大 x 坐标函数 . 2051.getmaxy()返回最大 y 坐标函数.2052.getx()返回 x 坐标函数 .2153.gety()返回 y 坐标函数 .2154.moveto()函数 .2155.moverel() 相对移动函数 . 22四、图形和图
5、像函数.22(一)像素函数 .2256.putpixel() 画像素点函数 . 2257.getpixel() 返回像素色函数. 23(二)直线和线型函数.2358.line() 画线函数.2359.lineto() 画线函数 . 2360.linerel() 相对画线函数. 2461.setlinestyle()设置线型函数.2462.getlinesettings() 获取线型设置函数. 2663.setwritemode()设置画线模式函数.26(三)、多边形函数 . 2764.rectangle()画矩形函数 .2765.bar()画条函数 . 2766.bar3d()画条块函数 .
6、2867.drawpoly() 画多边形函数.29(四)、圆、弧和曲线函数. 2968.getaspectratio()获取纵横比函数. 3069.circle() 画圆函数.3070.arc()画圆弧函数 .31名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 31 页 - - - - - - - - - 一、确定显示卡微机系统显示部分由显示器(monitor) 和显示卡 (adapter)两部分组成。显示器是独立于主机的一种外部设备,显示卡或称显示适配卡,也有的称图形卡
7、,是插在主机上的一块电路板。但也有的显示卡与主机板设计在一起。显示卡包括寄存器组、存储器和控制电路三大部分。其中存储器又包括显示RAM 和 ROM BIOS两部分,微机对显示屏幕的所有操作都是通过显示卡来实现的。因此要进行图形显示,首先要确定计算机上安装的是何种显示卡。一种方法是询问计算机或终端使用者,确定将要使用的显示卡类型。这种方法很难,因为甚至专业程序员也不总是能确 定他正在使用什么样的硬件。另一种方法是用软件查询硬件以识别当前的配置。如果有一些识别硬件的标准,这就很简单了。在Borland C中对现在所使用的各种显示卡提供了支持,这只要调用 detectgraph()函数就可以了,该函
8、数为程序员确定计算机上使用的显示卡类型。20. detectgraph()显示卡检测函数功能:函数 detectgraph()在计算机上安装有显示卡的情况下,测定其显示卡的类型。用法:此函数调用方式为void detectgraph(int *driver,int *mode);说明:函数把 driver所指向的整型变量设置为图形驱动程序的代码,把mode所指向的整型变量设置为显示卡支持的最高有效模式(即该显示卡能支持的最高分辨率)。该函数相应的头文件为graphics.h返回值:返回适合于该显示卡的图形驱动程序的代码(也称等价值 ),并存放在 driver指向的变量中。若计算机系统中无图形硬
9、件,则由driver指向的变量设置为-2。例:检测计算机是否装有显示卡:int driver,mode;detectgraph(&driver,&mode);if(driver=-2)printf(no graphics adapterin the computer);exit(1);二、选择显示模式显示模式是指显示卡支持的分辨率与相应的颜色配置。每台计算机都配置了某种类型显示卡,可以为该显示卡指定显示模式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 31 页 - -
10、 - - - - - - - 21. initgraph()图形初始化函数功能:函数 initgraph() 用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式。用法:该函数调用方式为void initgraph(int *driver,int *mode,char *path);说明:1) 函数中参数 driver指向图形驱动程序(或者等价值 )。在头部文件 graphics.h中定义了图形驱动程序的宏名与其等价,如下:宏名等价值-DETECT0CGA1MCGA2EGA3EGA644EGAMONO5IBM85146HERCMONO7ATT4008VGA9PC3270
11、10-注:在现在的计算机中,上表中的许多显示卡已经过时,不再使用。这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值 0)时,initgraph() 函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。2)参数 mode指向显示模式或用等价值(风表 1-5),mode所指的值必须是有效模式之一。3)参数 path指向图形驱动程序所在的路径,例如BG1.若没有指定路径,就在当前目录下寻找。一般图形驱动程序包含在.BGI 文件中,这些文件是系统可以得到的。这个函数对应的头文件是graphics.h。返回值:无例:调用 initgraph()
12、 自动检测硬件图形系统,并选用最大分辨率显示模式。init drver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 31 页 - - - - - - - - - 22. getdrivername()获取图形驱动程序名的指针功能:函数 getdrivername()返回指向当前图形驱动程序名的指针。用法:此函数调用方式为char *getdrivername(voi
13、d);说明:本函数可以用来检测显示卡,但只能在initgraph() 设置图形驱动程序和显示模式之后调用。该函数相应的头文件为graphics.h返回值:返回一指针,指向含有当前图形驱动程序名的字符串。例:显示当前图形驱动程序名:#include#includevoid main()int graphdriver=DETECT,graphmode;char *s;initgraph(&graphdriver,&graphmode,);s=getdrivername();outtext(Using driver:);outtext(s);getch();closegraph();23. getg
14、raphmode()获取图形模式函数功能:函数 getgrapgmode()返回当前图形模式。用法:该函数调用方式为int getgraphmode(void);说明:getgraphmode()函数无参数调用。这个函数对应的头文件是graphics.h返回值:返回 initgraph() 或setgraphmode()所设置的当前图形模式值。例:显示当前图形模式的代码:printf(graphics mode is %d,getgraphmode();24. getmoderange() 获取模式值范围函数功能:函数 getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式
15、值。用法:函数调用方式为void getmoderange(int driver,int *lowmode,inthimode);说明:参数 driver是用来调用此函数时,指定图形驱动程序等价值或宏名。其有效值如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 31 页 - - - - - - - - - -宏名等价值-DETECT0CGA1MCGA2EGA3EGA644EGAMONO5IBM85146HERCMONO7ATT4008VGA9PC327010-注:上表
16、中的许多显示卡在现在的计算机上已经过时,仅作参考。该函数想应的头文件为graphics.h返回值:返回的最小和最大有效值存放在参数指针lowmode和himode分别指向的整型变量中。例:显示当前图形硬件的显示模式的范围值:#includegraphics.hvoid main()int driver,mode;int low,high;mode=0;initgraph(&driver,&mode,);getmoderange(driver,&low,&high);printf(mode range:%d-%d,low,high);getch();rstorecrtmode();25. get
17、maxmode() 获取最大显示模式函数功能:函数 getmaxmode()返回当前加载的图形驱动程序所支持的最大有效显示模式。用法:函数调用方式为int getmaxmode(void);说明:本函数无参数调用,返回图形驱动程序所支持的最大显示模式,所有图形驱动程序支持从0到getmaxmode()函数返回值中的任一整数值(对应的显示模式)。这个函数对应的头文件是graphics.h名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 31 页 - - - - - - - -
18、 - 返回值:返回图形驱动程序所支持的显示模式最大值。例:显示当前最大显示模式:printf(Themaxmode of this driver is %dn,getmaxmode();26. getmodename() 获取显示模式名函数功能:函数 getmodename()可获取当前图形驱动程序支持的指定显示模式的名字。用法:此函数调用方式为char *getmodename(int modecode);说明:参数 modecode为整型值。用以指定一显示模式值调用该函数。这个函数对应的头文件graphics.h返回值:返回指定模式值的显示模式名。例:显示当前最大显示模式名:#includ
19、e#includevoid main()int graphdriver=DETECT,graphmode;int modecode;char *s;initgraph(&graphdriver,&graphmode,);modecode=getmaxmode();s=getmodename(modecode);outtext(The maxmode name is:);outtext(s);getch();closegraph();27. graphdefaults() 图形设置复位缺省值函数功能: 函数 grpahdefaults()把所有图形设置复位为它们的缺省值,这包括把图形视口复位为全
20、屏幕;当前位置定位在0,0;调色板、背景色和绘图色都被复位;填充颜色、填充图样、文本文字和排齐方式都返回到它位的缺省值。用法:此函数调用方式为void graphdefaults(void);说明:该函数无参数调用。这个函数相应的头文件为graphics.h返回值:无例:将图形系统恢复为其缺省值:graphdefaults();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 31 页 - - - - - - - - - 28. setgraphmode()设置图形模式函数
21、功能:函数 setgraphmode()用当前图形驱动程序有效的图形模式调用,一旦被调用,setgraphmode()选择一个新的图形模式。注意,图形显示模式必须事先由initgraph() 初始化。用法:该函数调用方式为void setgraphmode(int mode);说明:参数 mode调用时为指定的模式值。此函数相应的头部文件是graphics.h返回值:无例:把VGA 图形卡设置为VGAMED 模式:setgraphmode(VGAMED);/ 图形系统已经初始化29. restorecrtmode()恢复文本显示模式函数功能:函数 restrecrtmode()将显示模式恢复到
22、调用initgraph() 时检测出的初始文本模式。用法:这个函数调用方式为void restorecrtmode(void);说明: 函数 restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换。此函数对应的头文件为graphics.h返回值:无例:恢复显示模式为初始文本模式:restorecrtmode();三、图形显示进行图形显示首先要确定显示卡,然后选择其显示模式。这些工作都可以调用图形功能函数来完成, 其实就是把适合于显示卡的图形驱动程序装入内存。如果图形驱动程序未装入内存,那么图形函数就不能操作。30. graphresult(
23、)图形操作结果函数功能:函数 graphresult()函数返回最后一次图形操作的代码。用法:此函数调用方式为int graphresult(void);说明:C为图形设置了代码,它们是从-15到0的整数值。其含义见表1-6。调用该函数时,出错状态被复位为0,所以返回值 (代码 )最好存于变量中,以供需要时检测,进行下一步图形操作。图形操作信息名称代码含义grInvalidDeviceNum-14无效设备号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 31 页 - -
24、- - - - - - - 这个函数对应的头部文件是graphics.h返回值:返回最后一次图形操作结果相应的代码。例:调用 graphresult()函数的实例见下面grapherrormsg() 函数的例子。31. grpaherrormsg()图形错误信息函数功能:函数 grapherrormsg()返回指向出错代码相应的错误信息字符串的指针。用法:此函数调用方式为char *grapherrormsg(int errcode);说明:参数 errcode值,即出错代码由调用函数graphresult()获得。这里所有出错代码及相应的错误信息如表 1-6中所述。该函数相应的头文件是grp
25、ahics.h返回值:返回一个指向该出错代码相应的错误信息字符串的指针。例:用文字形式显示有关出错代码相应的错误信息:int errorcode;errorcode=graphresult();printf(%s,grapherrormsg(errcode);32. setgraphbufsize() 设置图形缓冲区大小函数功能:函数 setgraphbufsize()用来设置有的图形函数(如 floodfill 等 )所要用到的内存缓冲区大小。用法:函数调用方式为unsigned setgraphbufsize(unsigned bufsize);说明:这里无符号参数bufsize为所设置的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C图形编程 2022 图形 编程

限制150内