欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年C图形编程 .pdf

    • 资源ID:34881300       资源大小:227.27KB        全文页数:31页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年C图形编程 .pdf

    目录目录 .1一、确定显示卡. 220.detectgraph()显示卡检测函数. 3二、选择显示模式.321.initgraph() 图形初始化函数. 422.getdrivername() 获取图形驱动程序名的指针. 523.getgraphmode()获取图形模式函数. 524.getmoderange()获取模式值范围函数.525.getmaxmode()获取最大显示模式函数.626.getmodename()获取显示模式名函数. 727.graphdefaults()图形设置复位缺省值函数. 728.setgraphmode()设置图形模式函数.829.restorecrtmode()恢复文本显示模式函数. 8三、图形显示.830.graphresult()图形操作结果函数. 831.grpaherrormsg()图形错误信息函数.932.setgraphbufsize()设置图形缓冲区大小函数. 933.setactivepage()设置可输出显示页函数.1034.setvisualpage()设置可见显示页数.1035.closegraph()关闭图形模式函数. 10(一) 、屏幕和视口设置与清除函数.1236.setviewport() 设置图形视口函数.1237.clearviewport() 清除图形视口函数.1238.cleardevice()清除屏幕函数.1239.getviewsettings() 获取图形视口设置函数. 13(二) 、调色板和颜色函数. 1340.setpalette()设置调色板函数. 1341.setallpalette()设置整个调色板函数. 1442.setbackcolor()设置背景颜色函数.1443.setcolor()设置颜色函数.1544.getbkcolor() 返回背景色函数.1645.getcolor() 返回当前绘图颜色. 1646.getmaxcolor() 返回最大颜色值函数. 1647.getpalette()获取调色板函数.1748.getpalettesize()返回调色板大小函数. 1849.getdefaultpalette() 获取缺省调色板函数19(三) 、屏幕位置函数20名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 31 页 - - - - - - - - - 50.getmaxx()返回最大 x 坐标函数 . 2051.getmaxy()返回最大 y 坐标函数.2052.getx()返回 x 坐标函数 .2153.gety()返回 y 坐标函数 .2154.moveto()函数 .2155.moverel() 相对移动函数 . 22四、图形和图像函数.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()画条块函数 . 2867.drawpoly() 画多边形函数.29(四)、圆、弧和曲线函数. 2968.getaspectratio()获取纵横比函数. 3069.circle() 画圆函数.3070.arc()画圆弧函数 .31名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 31 页 - - - - - - - - - 一、确定显示卡微机系统显示部分由显示器(monitor) 和显示卡 (adapter)两部分组成。显示器是独立于主机的一种外部设备,显示卡或称显示适配卡,也有的称图形卡,是插在主机上的一块电路板。但也有的显示卡与主机板设计在一起。显示卡包括寄存器组、存储器和控制电路三大部分。其中存储器又包括显示RAM 和 ROM BIOS两部分,微机对显示屏幕的所有操作都是通过显示卡来实现的。因此要进行图形显示,首先要确定计算机上安装的是何种显示卡。一种方法是询问计算机或终端使用者,确定将要使用的显示卡类型。这种方法很难,因为甚至专业程序员也不总是能确 定他正在使用什么样的硬件。另一种方法是用软件查询硬件以识别当前的配置。如果有一些识别硬件的标准,这就很简单了。在Borland C中对现在所使用的各种显示卡提供了支持,这只要调用 detectgraph()函数就可以了,该函数为程序员确定计算机上使用的显示卡类型。20. detectgraph()显示卡检测函数功能:函数 detectgraph()在计算机上安装有显示卡的情况下,测定其显示卡的类型。用法:此函数调用方式为void detectgraph(int *driver,int *mode);说明:函数把 driver所指向的整型变量设置为图形驱动程序的代码,把mode所指向的整型变量设置为显示卡支持的最高有效模式(即该显示卡能支持的最高分辨率)。该函数相应的头文件为graphics.h返回值:返回适合于该显示卡的图形驱动程序的代码(也称等价值 ),并存放在 driver指向的变量中。若计算机系统中无图形硬件,则由driver指向的变量设置为-2。例:检测计算机是否装有显示卡:int driver,mode;detectgraph(&driver,&mode);if(driver=-2)printf(no graphics adapterin the computer);exit(1);二、选择显示模式显示模式是指显示卡支持的分辨率与相应的颜色配置。每台计算机都配置了某种类型显示卡,可以为该显示卡指定显示模式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 31 页 - - - - - - - - - 21. initgraph()图形初始化函数功能:函数 initgraph() 用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式。用法:该函数调用方式为void initgraph(int *driver,int *mode,char *path);说明:1) 函数中参数 driver指向图形驱动程序(或者等价值 )。在头部文件 graphics.h中定义了图形驱动程序的宏名与其等价,如下:宏名等价值-DETECT0CGA1MCGA2EGA3EGA644EGAMONO5IBM85146HERCMONO7ATT4008VGA9PC327010-注:在现在的计算机中,上表中的许多显示卡已经过时,不再使用。这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值 0)时,initgraph() 函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。2)参数 mode指向显示模式或用等价值(风表 1-5),mode所指的值必须是有效模式之一。3)参数 path指向图形驱动程序所在的路径,例如BG1.若没有指定路径,就在当前目录下寻找。一般图形驱动程序包含在.BGI 文件中,这些文件是系统可以得到的。这个函数对应的头文件是graphics.h。返回值:无例:调用 initgraph() 自动检测硬件图形系统,并选用最大分辨率显示模式。init drver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 31 页 - - - - - - - - - 22. getdrivername()获取图形驱动程序名的指针功能:函数 getdrivername()返回指向当前图形驱动程序名的指针。用法:此函数调用方式为char *getdrivername(void);说明:本函数可以用来检测显示卡,但只能在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. getgraphmode()获取图形模式函数功能:函数 getgrapgmode()返回当前图形模式。用法:该函数调用方式为int getgraphmode(void);说明:getgraphmode()函数无参数调用。这个函数对应的头文件是graphics.h返回值:返回 initgraph() 或setgraphmode()所设置的当前图形模式值。例:显示当前图形模式的代码:printf(graphics mode is %d,getgraphmode();24. getmoderange() 获取模式值范围函数功能:函数 getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式值。用法:函数调用方式为void getmoderange(int driver,int *lowmode,inthimode);说明:参数 driver是用来调用此函数时,指定图形驱动程序等价值或宏名。其有效值如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 31 页 - - - - - - - - - -宏名等价值-DETECT0CGA1MCGA2EGA3EGA644EGAMONO5IBM85146HERCMONO7ATT4008VGA9PC327010-注:上表中的许多显示卡在现在的计算机上已经过时,仅作参考。该函数想应的头文件为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. getmaxmode() 获取最大显示模式函数功能:函数 getmaxmode()返回当前加载的图形驱动程序所支持的最大有效显示模式。用法:函数调用方式为int getmaxmode(void);说明:本函数无参数调用,返回图形驱动程序所支持的最大显示模式,所有图形驱动程序支持从0到getmaxmode()函数返回值中的任一整数值(对应的显示模式)。这个函数对应的头文件是graphics.h名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 31 页 - - - - - - - - - 返回值:返回图形驱动程序所支持的显示模式最大值。例:显示当前最大显示模式:printf(Themaxmode of this driver is %dn,getmaxmode();26. getmodename() 获取显示模式名函数功能:函数 getmodename()可获取当前图形驱动程序支持的指定显示模式的名字。用法:此函数调用方式为char *getmodename(int modecode);说明:参数 modecode为整型值。用以指定一显示模式值调用该函数。这个函数对应的头文件graphics.h返回值:返回指定模式值的显示模式名。例:显示当前最大显示模式名:#include#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()把所有图形设置复位为它们的缺省值,这包括把图形视口复位为全屏幕;当前位置定位在0,0;调色板、背景色和绘图色都被复位;填充颜色、填充图样、文本文字和排齐方式都返回到它位的缺省值。用法:此函数调用方式为void graphdefaults(void);说明:该函数无参数调用。这个函数相应的头文件为graphics.h返回值:无例:将图形系统恢复为其缺省值:graphdefaults();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 31 页 - - - - - - - - - 28. setgraphmode()设置图形模式函数功能:函数 setgraphmode()用当前图形驱动程序有效的图形模式调用,一旦被调用,setgraphmode()选择一个新的图形模式。注意,图形显示模式必须事先由initgraph() 初始化。用法:该函数调用方式为void setgraphmode(int mode);说明:参数 mode调用时为指定的模式值。此函数相应的头部文件是graphics.h返回值:无例:把VGA 图形卡设置为VGAMED 模式:setgraphmode(VGAMED);/ 图形系统已经初始化29. restorecrtmode()恢复文本显示模式函数功能:函数 restrecrtmode()将显示模式恢复到调用initgraph() 时检测出的初始文本模式。用法:这个函数调用方式为void restorecrtmode(void);说明: 函数 restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换。此函数对应的头文件为graphics.h返回值:无例:恢复显示模式为初始文本模式:restorecrtmode();三、图形显示进行图形显示首先要确定显示卡,然后选择其显示模式。这些工作都可以调用图形功能函数来完成, 其实就是把适合于显示卡的图形驱动程序装入内存。如果图形驱动程序未装入内存,那么图形函数就不能操作。30. graphresult()图形操作结果函数功能:函数 graphresult()函数返回最后一次图形操作的代码。用法:此函数调用方式为int graphresult(void);说明:C为图形设置了代码,它们是从-15到0的整数值。其含义见表1-6。调用该函数时,出错状态被复位为0,所以返回值 (代码 )最好存于变量中,以供需要时检测,进行下一步图形操作。图形操作信息名称代码含义grInvalidDeviceNum-14无效设备号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 31 页 - - - - - - - - - 这个函数对应的头部文件是graphics.h返回值:返回最后一次图形操作结果相应的代码。例:调用 graphresult()函数的实例见下面grapherrormsg() 函数的例子。31. grpaherrormsg()图形错误信息函数功能:函数 grapherrormsg()返回指向出错代码相应的错误信息字符串的指针。用法:此函数调用方式为char *grapherrormsg(int errcode);说明:参数 errcode值,即出错代码由调用函数graphresult()获得。这里所有出错代码及相应的错误信息如表 1-6中所述。该函数相应的头文件是grpahics.h返回值:返回一个指向该出错代码相应的错误信息字符串的指针。例:用文字形式显示有关出错代码相应的错误信息:int errorcode;errorcode=graphresult();printf(%s,grapherrormsg(errcode);32. setgraphbufsize() 设置图形缓冲区大小函数功能:函数 setgraphbufsize()用来设置有的图形函数(如 floodfill 等 )所要用到的内存缓冲区大小。用法:函数调用方式为unsigned setgraphbufsize(unsigned bufsize);说明:这里无符号参数bufsize为所设置的缓冲区大小。一般不需要用到该函数,仅使用由initgraph() 函数产生的内存缓冲区就够了,缓冲区大小缺省时为 4KB( 即4096个字节 ), 足以用来填充一个大约有 650个顶点的多边形, 但是为了节省内存,用户可以减少缓冲区的大小,或者由于需要更多的缓冲区内存,这时可用函数setgraphbufsize()来增加缓冲区大小。注意,使用setgraphbufsize()函数必须在调用initgraph() 之前。grInvalidFont-13无效字体文件grIOerror-12输入输出错误grError-11一般图形错误grInvalidMode-10无效的图形模式grNoFontMem-9没有足够内存用于装字体文件grFontNotFound-8没有找到字体文件grNoFloadMem-7Flood填 充内存不足grNoScanMem-6Scan填 充内存不足grNoLoadMem-5没有足够内存装入图形驱动程序grInvalidDriver-4无效图形驱动程序grFileNoFound-3没有找到图形驱动文件grNoDetected-2没有检测到图形硬件grNoInitGraph-1没有图形初始化grOK0成功名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 31 页 - - - - - - - - - 返回值:返回先前定义的图形缓冲区字节数。例:调用此函数设置图形缓冲区为8KB字节:setgraphbufsize(0 x2000);33. setactivepage() 设置可输出显示页函数功能:函数 setactiveage()设置用作图形输出的显示页。用法:这个函数调用方式为void setactivepage(int pagenum);说明:参数 pagenum为选择的显示页号,如果调用成功,那么后续图形输出就写到选定的输出页上。 缺省时是以 0页作为当前输出页。该函数只在图形驱动程序及其显示模式支持多个显示页时才起作用。此函数相应的头文件为graphics.h返回值:无例:设置 1页为输出显示页:setactivepage(1);34. setvisualpage()设置可见显示页数功能:函数 setvisualpage()设置屏幕上可见的显示页。用法:函数调用方式为void setvisualpage(int pagenum);说 明:参数pagenum为设置的显示页号。缺省时是以0页作为当前可见页。调用这个函数和调用setactivepage()一样, 仅在图形驱动程序及其显示模式支持多个显示页时才有效。用户可以用系统所支持的任何显示页,在它们之间切换,当然一次只能有一个显示页在屏幕上可见,有时需要在一页上建立后备图形葨图像,它在当时不显示,一旦需要时,可以马上切换到该页,如要实现动画效果,只需切换显示页号即可。用setvisualpage()函数选定实际显示在屏幕上的可见页,用 setactivepage()函数选择当前图形输出页,从而实现图形页之间的显示切换,通常这两个函数都是缺省的,这时输出页就是可见页。若不绘制动画就不需要用到这两个函数。这两个函数对应的头文件是graphics.h返回值:无例:设置可见页为第1页:setvisualpage(1);35. closegraph() 关闭图形模式函数功能:函数 closegraph()将系统图形模式关闭, ,复位到 initgraph() 初始文本模式,并且释放图形驱动程序、字体和内部缓冲区所占用的系统内存。用法:这个函数调用方式为void closegraph(void);说 明:当用户的程序既用到图形输出又用到非图形输出时,应该调用此函数。特别是程序多次调用 initgraph() 函数的情况,要相应地调用closegraph函数 ,释放调用 initgraph() 所占用的内存,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 31 页 - - - - - - - - - 否则内存很快就满了,程序无法运行,如果程序结束,也可以用restorecrtmode()函数代替该函数,这样任何分配的内存都将释放。此函数对应的头文件是graphics.h返回值:无例:关闭图形系统:closegraph();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 31 页 - - - - - - - - - Borland C+提供了一整套综合性的图形函数,上节介绍了其中有关图形显示的函数,本节介绍其中的绘图函数,下节将介绍它的图形文本函数。一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等。下面给出具有这些功能的函数。(一)、屏幕和视口设置与清除函数36. setviewport()设置图形视口函数功能:函数 setviewport()设置当前图形视口。用法:函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);说明:参数 left,top是左上角坐标,right,bottom 是右下角坐标,它们都是绝对屏幕坐标。传给 setviewport() 的第五个参数是clip ,如果 clip为1,则超出视口的输出图形自动被裁剪掉,即所有作图限制于当前图形视口之内,如果clip 为0,则不做裁剪,即作图将无限制地扩展于视口周界之外,直到屏幕边界。若无效参数传入setviewport(), 则graphresult ()函数返回值 -11,先前视口设置仍有效。setviewport() 函数的对应头文件为graphics.h返回值:无例:建立对角为 (6,6)和(88,88)的视口,并带有裁剪功能:setviewport(6,6,88,88,1);37. clearviewport() 清除图形视口函数功能:函数 clearviewport() 清除当前图形视口,并把光标从当前位置移到原点(0,0)。用法:该函数调用方式为void clearviewport(void);说明:此函数调用执行后,当前图形视口将不复存在。这个函数对应的头文件是graphics.h返回值:无例:清除当前图形视口,但并非整个屏幕:clearviewport();38. cleardevice()清除屏幕函数功能:函数 cleardevice() 清除整个屏幕,并且将当前位置移到屏幕原点。用法:此函数调用方式为void cleardevice(void);说明:该函数类似于文本模式下的函数clrscr() ,但 clrscr() 函数不能在图形方式下工作;同样cleardevice()函数不能在文本模式下工作。这个函数相应的头文件为graphics.h名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 31 页 - - - - - - - - - 返回值:无例:清除当前整个屏幕:cleardevice();39. getviewsettings()获取图形视口设置函数功能:函数 getviewsettings()返回当前图形视口坐标和裁剪标志,坐标是绝对屏幕坐标,裁剪标志 1或 0。用法:此函数调用方式为void getviewsettings(struct viewporttype *info);说明:该函数执行后,把有关当前视口的信息装入info 指向的 viewporttype 型结构中。viewporttype 结构定义如下:struct viewporttype int left,top,right,bottom;int clipflag;这里 left,top 中存放视口左上角坐标,right,bottom 中存放视口右下角坐标,clipflag 中存放裁剪标志,若 clipflag 为1 ,执行裁剪以防止超出视口边界,如果clipflag 为0,则不对超出边界输出作裁剪。getviewsettings()函数对应的头文件是graphics.h返回值:无例:显示当前视口角点坐标:struct viewporttype info;getviewsettings(&info);printf(left:%dtop:%dn,info.left,info.top);printf(right:%dbottom:%dn,info.right,info.bottom);(二)、调色板和颜色函数进行图形显示或绘图,除了要知道用什么显示卡以及相应的图形驱动程序外,还必须了解它们支持什么样的调色板颜色。40. setpalette() 设置调色板函数功能:函数 setpalette()可对调色板上的颜色的色彩值重新设定。用法:setpalette()函数调用方式为void setpalette(int value,int color);说明:参数 value为色彩值, color为色彩值相应的颜色名。当需要将一颜色指定为一色彩值地,即可调用此函数来设置。表1-7预先定义的调色板与色彩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 31 页 - - - - - - - - - -调色板色彩 0色彩 1色彩 2色彩 3-C0黑色淡绿红浅黄色C1黑色淡青粉红白色C2黑色绿色红色棕色C3黑色青色品粉红淡灰色-这个函数相对应的头文件为graphics.h返回值:无41. setallpalette() 设置整个调色板函数功能:函数 setallpalette()对某个调色板上的所有颜色重新设定彩色值。用法:函数调用方式为void setallpalette(struct palettetype *p);说明:在低分辨率图形显示模式下,该函数无效。若函数调用成功,则把p指向的 palettetype结构中的色彩值设置为当前调色板所有颜色的新色彩值。palettetype结构定义如下:struct palettetype unsigned char size;signed char color16;这里必须把 size设置为调色板颜色的数目,并把每个色彩值都装入color数组相应元素中,然后才可用于调用函数。此函数对应的头文件是graphics.h返回值:无例:把 16色的 EGA/VGA 显示卡调色板改为其前16种颜色:struct palettetype;int i;for(i=0;i16;i+)p.colori=i;p.size=16;setallpalette(&p);42. setbackcolor()设置背景颜色函数功能:函数 setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。用法:此函数调用方式为void setbackcolor(int color);说明:参数 color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。表1-8列出了背景颜色供选取。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 31 页 - - - - - - - - - 表1-8 背景颜色值-颜色符号名色彩值颜色符号名色彩值-BLACK( 黑色 )0DARKGRAY( 深灰 )8BLUE( 蓝色 )1LIGHTBLUE(淡蓝 )9GREEN( 绿色 )2LIGHTGREEN( 淡绿 )10CYAN( 青色 )3LIGHTCYAN(淡青 )11RED( 红色 )4LIGHTRED( 淡红 )12MAGENTA( 品红 )5LIGHTMAGENTA(粉红 )13BROWN( 棕色 )6YELLOW( 黄色 )14LIGHTGRAY( 淡灰 )7WHITE( 白色 )15-调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。这个函数的头文件为graphics.h返回值:无例:把背景色置为淡蓝色setbackcolor(LIGHTBLUE);43. setcolor()设置颜色函数功能:函数 setcolor()设置当前绘图颜色(或称做前景色)。用法:该函数调用方式为voids setcolor(int color);说明:参数 color为选择的当前绘图颜色。在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。在低分辨率显示模式(320X200) 下,选取的 color是调色板颜色号,不是实际色彩值。此函数相应的头文件为graphics.h返回值:无例:设置 16种不同的颜色,显示16段直线:#includevoid main()int driver,mode;int i;driver=DETECT;mode=0;initgraph(&driver,&mode,);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 31 页 - - - - - - - - - moveto(0,200);for(i=0;i16;i+)setcolor(i);linerel(20,0);getch();restorecrtmode();44. getbkcolor()返回背景色函数功能:函数 getbackcolor()返回当前背景颜色。用法:函数调用方式为int getbackcolor(void);说明:调用该函数后,获得背景色,但其值不一定是调色板上的色彩值。这个函数对应的头文件是graphics.h返回值:返回当前绘图色彩值。例:返回当前背景色彩值:printf(background color is %d, getbkcolor();45. getcolor()返回当前绘图颜色用法:此函数调用方式为int getcolor(void);说明:对于使用彩色低分辨率显示模式调色板,返回值是调色板颜色号,而不是实际颜色值,对于高 分辨 率显 示模 式, 返回 值对 应 于颜 色值 ,除 非调 色板 颜色 已被 函 数 setpalette()或setallpalette()改变了。这个函数相应的头文件为graphics.h返回值:返回当前绘图颜色值。例:printf(drawingcolor is %d,getcolor();46. getmaxcolor() 返回最大颜色值函数用法:函数调用方式为int getmaxcolor(void);说明:该函数调用后,在低分辨率模式下返回值为3(这种模式下有效颜色值为0至 3);在高分辨率显示模式下返回值可以是256或更高 (此模式下有效颜色值为0至256或更高 )。这个函数相应的头文件为graphics.h返回值:返回当前图形模式下最大颜色值。例:显示最大有效颜色值:#include名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 31 页 - - - - - - - - - void main()int driver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,);printf(;largest color: %d,getmaxcolor();getch();restorecrtmode();47. getpalette()获取调色板函数功能:函数 getpalette()将当前调色板的值填入palettetype型结构中。用法:getpalette()函数调用方式为void getpalette(struct palettetype *p);说明:此函数调用执行后,当前调色板的值被装入p指向的结构里;从而可从该结构中获得这个调色板的设置信息。palettetype型结构定义如下#define MAXCOLORS15struct palettetype unsigned char size;signed char colorsMAXCOLORS+1;其中 size用于存放当前调色板的有效颜色个数;colors数组的每一元素中装入调色板的一个相应颜色值。表1-9 列出了这些颜色值(适用于 EGA/VGA)-颜色符号名色彩值-EGA_BLACK(EGA黑色 )0EGA_BLUE(EGA蓝色 )1EGA_GREEN( 绿色 )2EGA_CYAN(EGA 青色 )3EGA_RED( 红色 )4EGA_MAGENTA(EGA品红 )5EGA_BROWN(EGA 棕色 )20EGA_LIGHTGRAY(EGA淡灰 )7EGA_DARKGRAY(EGA深灰 )56EGA_LIGHTBLUE(EGA淡蓝 )57EGA_LIGHTGREEN(EGA淡绿 )58名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 31 页 - - - -

    注意事项

    本文(2022年C图形编程 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开