C语言图形编程(三、绘图函数-02)
四、图形和图像函数
(一)像素函数
56.putpiel()画像素点函数
(二)直线和线型函数
58.line()画线函数
59.lineto()画线函数
60.linerel()相对画线函数
61.setlinestyle()设置线型函数
63.setwritemode()设置画线模式函数
(三)、多边形函数
65.bar()画条函数
66.bar3d()画条块函数
67.drawpoly()画多边形函数
(四)、圆、弧和曲线函数
69.circle()画圆函数
70.arc()画圆弧函数
71.ellipse()画椭圆弧函数
72.fillellipse()画椭圆区函数
73.pieslice()画扇区函数
74.sector()画椭圆扇区函数
(五)、填充函数
76.setfillstyle()设置填充图样和颜函数
77.setfillpattern()设置用户图样函数
78.floodfill()填充闭域函数
79.fillpoly()填充多边形函数
(六)、图像函数
82.imagesize()图像存储大小函数
84.putimage()输出图像函数
四、图形和图像函数
对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。
(一)像素函数
56.putpixel()画像素点函数
功能:函数putpixel()在图形模式下屏幕上画一个像素点。
用法:函数调用方式为void putpixel(int x,int y,int color);
说明:参数x,y为像素点的坐标,color是该像素点的颜,它可以是颜符号名,也可以是整型彩值。
此函数相应的头文件是graphics.h
返回值:无
例:在屏幕上(6,8)处画一个红像素点:
putpixel(6,8,RED);
功能:函数getpixel()返回像素点颜值。
用法:该函数调用方式为int getpixel(int x,int y);
说明:参数x,y为像素点坐标。
函数的返回值可以不反映实际彩值,这取决于调板的设置情况(参见setpalette()函数)。
这个函数相应的头文件为graphics.h
返回值:返回一个像素点彩值。
例:把屏幕上(8,6)点的像素颜值赋给变量color。
color=getpixel(8,6);
(二)直线和线型函数
有三个画直线的函数,即line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip 为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。
有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。58.line()画线函数
功能:函数line()使用当前绘图、线型及线宽,在给定的两点间画一直线。
用法:该函数调用方式为void line(int startx,int starty,int endx,int endy);
说明:参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。
此函数相应的头文件为graphics.h
返回值:无
例:见函数60.linerel()中的实例。
59.lineto()画线函数
功能:函数lineto()使用当前绘图、线型及线宽,从当前位置画一直线到指定位置。
用法:此函数调用方式为void lineto(int x,int y);
说明:参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。
该函数对应的头文件为graphics.h
返回值:无
例:见函数60.linerel()中的实例。
60.linerel()相对画线函数
功能:函数linerel()使用当前绘图、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。
用法:这个函数调用方式为void linerel(int dx,int dy);
说明:参数dx,dy分别是水平偏移距离和垂直偏移距离。
函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。
返回值:无
例:下面的程序为画线函数调用实例:
#include<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
setcolor(15);
line(66,66,88,88);
lineto(100,100);
linerel(36,64);
getch();
restorecrtmode();
}
61.setlinestyle()设置线型函数
功能:setlinestyle()为画线函数设置当前线型,包括线型、线图样和线宽。
用法:setlinestyle()函数调用方式为void setlinestyle(int stly,unsigned pattern,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()会返回错误代码,并且当前线型继续有效。
Turbo C提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。
表1-10线型
-----------------------------------------------------
名称取值含义
-----------------------------------------------------
c语言struct头文件SOLID_LINE0实线
DOTTED_LINE1点线
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论