您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > graphics.h头函数
graphics.hgraphics.h是TC里面的图形库,如果要用的话应该用TC来编译,VC++有他自己的另外图形库。分为:像素函数、直线和线型函数、多边形函数、填充函数等。像素函数56.putpixel()画像素点函数57.getpixel()返回像素色函数直线和线型函数58.line()画线函数59.lineto()画线函数60.linerel()相对画线函数61.setlinestyle()设置线型函数62.getlinesettings()获取线型设置函数63.setwritemode()设置画线模式函数多边形函数64.rectangle()画矩形函数65.bar()画条函数66.bar3d()画条块函数67.drawpoly()画多边形函数圆、弧和曲线函数68.getaspectratio()获取纵横比函数69.circle()画圆函数70.arc()画圆弧函数71.ellipse()画椭圆弧函数72.fillellipse()画椭圆区函数73.pieslice()画扇区函数74.sector()画椭圆扇区函数75.getarccoords()获取圆弧坐标函数填充函数76.setfillstyle()设置填充图样和颜色函数77.setfillpattern()设置用户图样函数78.floodfill()填充闭域函数79.fillpoly()填充多边形函数80.getfillsettings()获取填充设置函数81.getfillpattern()获取用户图样设置函数图像函数82.imagesize()图像存储大小函数83.getimage()保存图像函数84.putimage()输出图像函数图形和图像函数对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。(一)像素函数putpixel()画像素点函数功能:函数putpixel()在图形模式下屏幕上画一个像素点。用法:函数调用方式为voidputpixel(intx,inty,intcolor);说明:参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。此函数相应的头文件是graphics.h返回值:无例:在屏幕上(6,8)处画一个红色像素点:putpixel(6,8,RED);getpixel()返回像素色函数功能:函数getpixel()返回像素点颜色值。用法:该函数调用方式为intgetpixel(intx,inty);说明:参数x,y为像素点坐标。函数的返回值可以不反映实际彩色值,这取决于调色板的设置情况(参见setpalette()函数)。这个函数相应的头文件为graphics.h返回值:返回一个像素点色彩值。例:把屏幕上(8,6)点的像素颜色值赋给变量color。color=getpixel(8,6);(二)直线和线型函数有三个画直线的函数,即line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。line()画线函数功能:函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。用法:该函数调用方式为voidline(intstartx,intstarty,intendx,intendy);说明:参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。此函数相应的头文件为graphics.h返回值:无例:见函数60.linerel()中的实例。lineto()画线函数功能:函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。用法:此函数调用方式为voidlineto(intx,inty);说明:参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。该函数对应的头文件为graphics.h返回值:无例:见函数60.linerel()中的实例。linerel()相对画线函数功能:函数linerel()使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。用法:这个函数调用方式为voidlinerel(intdx,intdy);说明:参数dx,dy分别是水平偏移距离和垂直偏移距离。函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。返回值:无例:下面的程序为画线函数调用实例:#includegraphics.hvoidmain(){intdriver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,);setcolor(15);line(66,66,88,88);lineto(100,100);linerel(36,64);getch();restorecrtmode();}setlinestyle()设置线型函数功能:setlinestyle()为画线函数设置当前线型,包括线型、线图样和线宽。用法:setlinestyle()函数调用方式为voidsetlinestyle(intstly,unsignedpattern,intwidth);说明:参数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()会返回错误代码,并且当前线型继续有效。TurboC提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。表1-10线型名称取值含义SOLID_LINE0实线DOTTED_LINE1点线CNTER_LINE2中心线DASHED_LINE3虚线USERBIT_LINE4用户自定义线型表1-11线宽名称取值说明NORM_WIDTH(常宽)1一个像素宽(缺省值)THICK_WIDTH(加宽)3三个像素宽这个函数的头文件是graphics.h返回值:无例:下面的程序显示了BC中所提供的线型图样:#includegraphics.hvoidmain(){intdriver,mode;i;driver=DETECT;mode=0;initgraph(&driver,&mode,);for(i=0;i4;i++){setlinestyle(i,0,1);line(i*50,200,i*50+60,200);}getch();restorecrtmode();}getlinesettings()获取线型设置函数功能:函数getlinesettings()用当前设置的线型、线图样和线宽填写linesettingstype型结构。用法:函数调用方式为voidgetlinesettings(structlinesettingstype*info);说明:此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。linesettingstype型结构定义如下:structlinesettingstype{intlinestyle;unsignedupattern;intthickness;};其中linestyle用于存放线型,线型值为表1-10中的各值之一。upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。thickness为线宽值存放的变量,可参见表1-11。getlinesettings()函数对应的头文件为graphics.h返回值:返回的线型设置存放在info指向的结构中。例:把当前线型的设置写入info结构:structlinesettingstypeinfo;getlinesettings(&info);setwritemode()设置画线模式函数功能:函数setwritemode()设置画线模式用法:函数调用方式为voidsetwritemode()(intmode);说明:参数mode只有两个取值0和1,若mode为0,则新画的线将复盖屏幕上原有的图形,此为缺省画线输出模式。如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。setwritemode()函数对应的头文件是graphics.h返回值:无例:设置画线输出模式为0:setwritemode(0);(三)、多边形函数对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。下面直接介绍画多边形的函数。rectangle()画矩形函数功能:函数rectangle()用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。用法:此函数调用方式为voidrectangle(intleft,inttop,intright,intbottom);说明:参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。这个函数对应的头文件为graphics.h返回值:无例:下面的程序画一些矩形实例:#includegraphics.hvoidmain(){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()用当前填充图样和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四条边线)。用法:bar()函数调用方式为voidbar(intleft,inttop,intright,intbottom);说明:参数left,topright,bottom分别为左上角坐标与右下角坐标,它们和调用函数rectangle()的情形相同,调用此函数前,可用setfillstyle()或setfillpattern()设置当前
本文标题:graphics.h头函数
链接地址:https://www.777doc.com/doc-6327768 .html