1 / 13
文档名称:

C语言图形函数库总结graphics.h.doc

格式:doc   大小:1,990KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言图形函数库总结graphics.h.doc

上传人:文艺人生 2024/4/30 文件大小:1.94 MB

下载得到文件列表

C语言图形函数库总结graphics.h.doc

相关文档

文档介绍

文档介绍:该【C语言图形函数库总结graphics.h 】是由【文艺人生】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【C语言图形函数库总结graphics.h 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。、、?????(一)像素函数?????()画像素点函数?????()返回像素色函数?????(二)直线和线型函数?????()画线函数?????()画线函数?????()相对画线函数?????()设置线型函数?????()获取线型设置函数?????()设置画线模式函数?????(三)、多边形函数?????()画矩形函数?????()画条函数?????()画条块函数?????()画多边形函数?????(四)、圆、弧和曲线函数?????()获取纵横比函数?????()画圆函数?????()画圆弧函数?????()画椭圆弧函数?????()画椭圆区函数?????()画扇区函数?????()画椭圆扇区函数?????()获取圆弧坐标函数?????(五)、填充函数?????()设置填充图样和颜色函数?????()设置用户图样函数?????()填充闭域函数?????()填充多边形函数?????()获取填充设置函数?????()获取用户图样设置函数?????(六)、图像函数那么直线将受到视口边缘截断;如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。?????有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。?????()画线函数?????功能:函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。?????用法:该函数调用方式为voidline(intstartx,intstarty,intendx,intendy);?????说明:参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。??????????返回值:无?????例:()中的实例。?????()画线函数?????功能:o()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。?????用法:o(intx,inty);?????说明:参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。??????????返回值:无?????例:()中的实例。?????()相对画线函数?????功能:函数linerel()使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。?????用法:这个函数调用方式为voidlinerel(intdx,intdy);?????说明:参数dx,dy分别是水平偏移距离和垂直偏移距离。?????函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。?????返回值:无?????例:下面的程序为画线函数调用实例:?????#include<>?????voidmain()?????{?????intdriver,mode;?????driver=DETECT;?????mode=0;?????initgraph(&driver,&mode,"");?????setcolor(15);?????line(66,66,88,88);?????o(100,100);?????linerel(36,64);?????getch();?????restorecrtmode();?????}?????()设置线型函数?????功能:setlinestyle()为画线函数设置当前线型,包括线型、线图样和线宽。?????用法:setlinestyle()函数调用方式为voidsetlinestyle(intstly,unsignedpattern,int?????width);?????说明:参数style为线型取值,也可以用相应名称表示,如表1-10中所示。?????参数pattern用于自定义线图样,它是16位(bit)字,只有当style=USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0xFFFF,则画实线;pattern=0x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0xFF00和0xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。?????参数wigth用来设定线宽,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。?????若用非法参数调用setlinestyle()函数,那么graphresult()会返回错误代码,并且当前线型继续有效。?????,表1-10和1-11分别列出了参数的取值与含义。?????表1-10线型?????-----------------------------------------------------?????名称取值含义?????-----------------------------------------------------?????SOLID_LINE0实线?????DOTTED_LINE1点线?????CNTER_LINE2中心线?????DASHED_LINE3虚线?????USERBIT_LINE4用户自定义线型?????-----------------------------------------------------?????表1-11线宽?????-----------------------------------------------------------?????名称取值说明?????-----------------------------------------------------------?????NORM_WIDTH(常宽)1一个像素宽(缺省值)?????THICK_WIDTH(加宽)3三个像素宽?????-----------------------------------------------------------??????????返回值:无?????例:下面的程序显示了BC中所提供的线型图样:?????#include<>?????voidmain()?????{?????intdriver,mode;?????driver=DETECT;?????mode=0;?????initgraph(&driver,&mode,"");?????for(i=0;i<4;i++)?????{?????setlinestyle(i,0,1);?????line(i*50,200,i*50+60,200)?????}?????getch();?????restorecrtmode();?????}?????()获取线型设置函数?????功能:函数getlinesettings()用当前设置的线型、线图样和线宽填写linesettingstype型结构。?????用法:函数调用方式为voidgetlinesettings(structlinesettingstype*info);?????说明:此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。?????linesettingstype型结构定义如下:?????structlinesettingstype{?????intlinestyle;?????unsignedupattern;?????intthickness;?????};?????其中linestyle用于存放线型,线型值为表1-10中的各值之一。?????upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。?????thickness为线宽值存放的变量,可参见表1-11。?????getlinesettings()?????返回值:返回的线型设置存放在info指向的结构中。?????例:把当前线型的设置写入info结构:?????structlinesettingstypeinfo;?????getlinesettings(&info);?????()设置画线模式函数?????功能:函数setwritemode()设置画线模式?????用法:函数调用方式为voidsetwritemode()(intmode);?????说明:?????参数mode只有两个取值0和1,若mode为0,则新画的线将复盖屏幕上原有的图形,此为缺省画线输出模式。如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。调用setwritemode()设置的画线输出模式只影响函数line(),o(),linerel(),recangle()和drawpoly()。?????setwritemode()?????返回值:无?????例:设置画线输出模式为0:?????setwritemode(0);?????(三)、多边形函数?????对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。下面直接介绍画多边形的函数。?????()画矩形函数?????功能:函数rectangle()用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。?????用法:此函数调用方式为voidrectangle(intleft,inttop,intright,intbottom);?????说明:?????参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。??????????返回值:无?????例:下面的程序画一些矩形实例:?????#include<>?????voidmain()?????{?????intdriver,mode;?????driver=DETECT;?????mode=0;?????initgrpah(&driver,&mode,"");?????rectangle(80,80,220,200);?????rectangle(140,99,180,300);?????rectangle(6,6,88,88);?????rectangle(168,72,260,360);?????getch();?????restorecrtmode();?????}?????()画条函数?????功能:函数bar()用当前填充图样和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四条边线)。?????用法:bar()函数调用方式为voidbar(intleft,inttop,intright,intbottom);?????说明:?????参数left,topright,bottom分别为左上角坐标与右下角坐标,它们和调用函数rectangle()的情形相同,调用此函数前,可用setfillstyle()或setfillpattern()设置当前填充图样和填充色。?????注意此函数只画没有边线的条形,如果要画有边线的的条形,可调用下面的函数bar3d()来画,并将深度参数设为0,同时topflag参数要设置为真,否则该条形无顶边线。??????????返回值:无?????例:见函数bar3d()中的实例。?????()画条块函数?????功能:函数bar3d()使用当前绘图色、线型及线宽画出三维长方形条块,并用当前填充图样和填充色填充该三维条块的表面。?????用法:此函数调用方式为voidbar3d(intleft,inttop,intright,intbottom,intdepth,int?????topflag);?????说明:?????参数left,top,right,bottom分另为左上角与右下角坐标,这与bar()函数中的一样。参数depth为条块的深度,以像素为单位,通常按宽度的四分之一计算。深度方向通过屏显纵横比调节为约45度(即这时x/y比设置为1:1)。?????参数topflag相当于一个布尔参数,如果设置为1(真)那么条块上放一顶面;若设置为0(假),则三维条形就没有顶面,这样可使多个三维条形叠加在一起。?????要使图形更加美观,可利用函数floodfill()或setfillpattern()来选择填充图样和填充色(参见本小节(五)填充函数)。?????bar3d()?????返回值:无?????例:下面的程序画一个条形和条块:?????#include<>?????voidmain()?????{?????intdriver,mode;?????driver=DETECT;?????mode=0;?????initgraph(&driver,&mode,"");?????setfillstyle(SOLID-FILL,GREEN);?????bar(60,80,220,160);?????setfillstyle(SOLID-FILL,RED);?????bar3d(260,180,360,240,20,1);?????getch();?????restorecrtmode();?????}?????()画多边形函数?????功能:函数drawpoly()用当前绘图色、线型及线宽,画一个给定若干点所定义的多边形。?????用法:此函数调用方式为voiddrawpoly(intpnumber,int*points);?????说明:?????参数pnumber为多边形的顶点数;参数points指向整型数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,x坐标值在前。显然整型数组的维数至少为顶点数的2倍,在定义了多边形所有顶点的数组polypoints时,顶点数目可通过计算sizeof(polypoints)除以2倍的sizeof(int)得到,这里除以2倍的原因是每个顶点有两个整数坐标值。另外有一点要注意,画一个n个顶点的闭合图形,顶点数必须等于n+1,并且最后一点(第n+1)点坐标必须等于第一点的坐标。?????drawpoly()?????返回值:无?????例:下面的程序画一个封闭星形图与一个不封闭星形图:?????#include<>?????voidmain()?????{