c语言的图形函数库有哪些?

Python05

c语言的图形函数库有哪些?,第1张

图形和图像函数包含在graphics.h里面

(一) 像素函数

56. putpiel() 画像素点函数

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() 输出图像函数

四、图形和图像函数

对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。

(一) 像素函数

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)

C语言的话画直线用MoveTo()和LineTo()很简单啊。

帮你复制一份我学习时老师给的画线两例:

#include<graphics.h>

#include<math.h>

/*

###############################################################################

功 能:本函数的作用是用逐点比较法来画一条直线

格 式:void myline1(int x1,int y1,int x2,int y2,int color)

参数说明:x1,y1是起始点坐标,x2,y2是终止点,color是画线的颜色

调用示例:myline1(10,20,500,440,4)

###############################################################################

*/

void myline1(int x1,int y1,int x2,int y2,int color)

{

/*变量定义开始(2007/10/16增加)*/

int iTx/*x轴终点的相对坐标xa或临时变量*/

int iTy/*y轴终点的相对坐标ya或临时变量*/

int iDx/*x轴方向的步长dx*/

int iDy/*y轴方向的步长dy*/

int iFt/*偏差Fm*/

int iSt/*记数循环数(dx+dy)S*/

int iXt/*x方向循环变量xm*/

int iYt/*y方向循环变量ym*/

/*变量定义结束*/

/*变量初始化开始*/

/*如果是第三象限或第四象限则换成第一或第二象限*/

if(y2<y1)

{

iTx=x1

x1=x2

x2=iTx

iTy=y1

y1=y2

y2=iTy

}

iTx=x2-x1/*取x轴的相对坐标*/

iTy=y2-y1/*取y轴的相对坐标*/

iDx=1

iDy=1

iFt=0

iSt=iTx+iTy

if(iTx<0)iSt=-1*iTx+iTy/*如果在第二象限,则x轴方向步长取负值*/

iXt=0

iYt=0

/*变量初始化结束*/

/*数据处理开始*/

while(iSt>0)

{

putpixel(x1+iXt,y1+iYt,color)

if(iTx>=0) /*如果在第一象限*/

{

if(iFt<0) /*如果偏差小于0*/

{

iYt+=iDy/*y方向走一步*/

iFt+=iTx

}

else /*如果偏差大于或等于0*/

{

iXt+=iDx/*x方向走一步*/

iFt-=iTy

}

}

else

{

if(iFt<0) /*如果偏差小于0*/

{

iXt-=iDx/*负x方向走一步*/

iFt+=iTy

}

else /*如果偏差大于或等于0*/

{

iYt+=iDy/*y方向走一步*/

iFt+=iTx

}

}

iSt--

}

}

/*

###############################################################################

功 能:本函数的作用是用来画一条直线

格 式:void myline2(int x1,int y1,int x2,int y2,int color)

参数说明:x1,y1是起始点坐标,x2,y2是终止点,color是画线的颜色

调用示例:myline2(10,20,500,440,4)

###############################################################################

*/

int myline2(int x1,int y1,int x2,int y2,int color)

{

int iX/*x方向的坐标变量*/

int iY/*y方向的坐标变量*/

int iTx/*x方向的步长变量*/

int iTy/*y方向的步长变量*/

float fDx/*x方向的差分变量*/

float fDy/*y方向的差分变量*/

float fMinf/*算法中的f*/

float fMaxF/*算法中的F*/

float fS/*终点判断变量*/

fMinf=0.5/*f=0.5*/

iX=x1

iY=y1

putpixel(x1,y1,color)

if(x1==x2&&y1==y2) /*如果终点和起始点相同*/

{

return(1)

}

iTx=1

iTy=1

fDx=(float)(x2-x1)

fDy=(float)(y2-y1)

fMaxF=fDy/fDx>0?fDy/fDx:(-fDy/fDx)/*F=|dy/dx|*/

if(fDx<0)iTx=-1

if(fDy<0)iTy=-1

fS=fDx>0?fDx:(-fDx)

if(fMaxF==1) /*如果F=1*/

{

iX=x1

iY=y1

while(fS>0)

{

iX+=iTx/*x方向走一步*/

iY+=iTy/*y方向走一步*/

putpixel(iX,iY,color)

fS--

}

}

else if(fMaxF>1) /*如果F>1*/

{

fS+=fDy>0?fDy:(-fDy)

while(fS>0)

{

iY+=iTy/*y方向走一步*/

putpixel(iX,iY,color)

fMinf+=1/fMaxF/*f=f+1/F*/

fS--

if(fMinf>=1) /*如果f>=1*/

{

iX+=iTx/*x方向走一步*/

fMinf--/*f=f-1*/

putpixel(iX,iY,color)

fS--

}

}

}

else /*如果F<1*/

{

fS+=fDy>0?fDy:(-fDy)

while(fS>0)

{

iX+=iTx/*x方向走一步*/

putpixel(iX,iY,color)

fMinf+=fMaxF/*f=f+F*/

fS--

if(fMinf>=1) /*如果f>=1*/

{

iY+=iTy/*y方向走一步*/

fMinf--/*f=f-1*/

putpixel(iX,iY,color)

fS--

}

}

}

}

一) 像素函数

putpiel() 画像素点函数

getpixel()返回像素色函数

(二) 直线和线型函数

line() 画线函数

lineto() 画线函数

linerel() 相对画线函数

setlinestyle() 设置线型函数

getlinesettings() 获取线型设置函数

setwritemode() 设置画线模式函数

(三)、多边形函数

rectangle() 画矩形函数

bar() 画条函数

bar3d() 画条块函数

drawpoly() 画多边形函数

(四)、 圆、弧和曲线函数

getaspectratio()获取纵横比函数

circle()画圆函数

arc() 画圆弧函数

ellipse()画椭圆弧函数

fillellipse() 画椭圆区函数

pieslice() 画扇区函数

sector() 画椭圆扇区函数

getarccoords()获取圆弧坐标函数

(五)、 填充函数

setfillstyle() 设置填充图样和颜色函数

setfillpattern() 设置用户图样函数

floodfill() 填充闭域函数

fillpoly() 填充多边形函数

getfillsettings() 获取填充设置函数

getfillpattern() 获取用户图样设置函数

(六)、图像函数

imagesize() 图像存储大小函数

getimage() 保存图像函数

putimage() 输出图像函数