2024年4月10日发(作者:)

graphics.h函数介绍

四、图形和图像函数

对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。

当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,

整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。

(一) 像素函数

56. putpixel() 画像素点函数

功能: 函数putpixel() 在图形模式下屏幕上画一个像素点。

用法: 函数调用方式为void putpixel(int x,int y,int color);

说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是

整型色彩值。

此函数相应的头文件是graphics.h

返回值: 无

例: 在屏幕上(6,8)处画一个红色像素点:

putpixel(6,8,RED);

57. getpixel()返回像素色函数

功能: 函数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

返回值: 无

例: 见函数l()中的实例。

59. lineto() 画线函数

功能: 函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。

用法: 此函数调用方式为void lineto(int x,int y);

1

说明: 参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。

该函数对应的头文件为graphics.h

返回值: 无

例: 见函数l()中的实例。

l() 相对画线函数

功能: 函数linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直

偏移距离画一直线。

用法: 这个函数调用方式为void linerel(int dx,int dy);

说明: 参数dx,dy分别是水平偏移距离和垂直偏移距离。

函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数

linerel(10,18)后,当前位置为(18,24)。

返回值:无

例: 下面的程序为画线函数调用实例:

#i nclude

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分别列出了参数的取值

与含义。

2