前言:easyx图形库是C++里面的一个图形库,其装有一些基本的绘图函数,可以通过这些绘图函数来创建一个窗口,从而绘制你想要的图像。这个非常适合初学者使用,能够帮助初学者快速上手图形库,同时我们还可以通过easyx图形库来制作有趣的图片,或者制作游戏。
目录
这个是我个人通过easyx图形库制作的流星雨动态图
流星雨
首先下载easyx图形库到你的VS 编译器里
C语言图形库函数easyx下载
easyx下载
也可以复制EasyX Graphics Library for C++浏览器下载
头文件
#include<easyx.h>
//或者#include<graphics.h>
1.创建窗口函数
initgraph(900, 600,SHOWCONSOLE);//其中900表示长,600表示高
//其中的SHOWCONSOLE是展示控制台,可以用1来代替,即initgraph(900, 600,1);
//这个参数可以不用
2.设置窗口背景颜色
setbkcolor(RGB(66, 52, 200));//RGB(a,b,c)其中a是表示红色,b是表示绿色,c是表示蓝色
setbkcolor(GREEN);//我们也可以这样直接表示窗口背景为绿色
RGB三原色每个参数的取值范围是0~255.不同的参数混合起来会展现出不同的颜色。
RGB
3.清屏函数
cleardevice();//清除当前画图窗口
4.打印文字
settextstyle(x, y, "幼圆");//表示字体的风格
//x是表示单个字体的高度;y是表示字体的平均宽度,一般设为0为默认值
setbkmode(TRANSPARENT);//这个可以设置背景字体背景颜色为透明,字体本身是有背景颜色的
settextcolor(BLUE);
//settextcolor(RGB(40,50,100));
(表示设立字体的颜色,有以上的两种写法 )
outtextxy(X,Y , "我爱中国!");
//我们也可以这样子输出
char str[20]={"我爱中国!"};
outtextxy(50,50,str);
其中X表示字体所放的横坐标,Y表示纵坐标(原点是在窗口的左上角)
5.画线段
setlinecolor(GREEN);//表示设立线段的颜色
//同样可以这样写setlinecolor(RGB(50,40,150));
一般先设立好线段的颜色,再去画线段
line(x1,y1,x2,y2);//绘画线段
数学上两点确定一条直线,起点坐标(x1,y1),终点坐标(x2,y2),连接起来就表示一条线段.
6.画圆
fillcircle(x,y,r);//表示画一个满圆,即实心圆
x表示圆心的横坐标,y表示圆心的纵坐标,r表示半径的大小
circle(x,y,r)//表示画一个空心圆,只有圆的轮廓,中间是空的
7.画矩形
rectangle(x1,y1,x2,y2)//表示画一个空心矩形(只有矩形的边框)
其中(x1,y1)表示矩形左下角点的坐标,(x2,y2)表示矩形右上角点的坐标,两个点是表示对角线,连起来画出矩形
fillrectangle(x1,y1,x2,y2);//表示画一个实心的矩形
8.设立填充颜色函数
setfillcolor(YELLOW);//当前颜色为黄色,颜色也可以用RGB来表示
填充颜色一般放在实心图的前面,例如:
setfillcolor(YELLOW);//颜色
fillrectangle(x1,y1,x2,y2);//实心图
9.画点
putpixel(x,y,color);//x表示点的横坐标,y表示点的纵坐标,color是颜色
在图形库里,一个点即是一个像素点,我们可以利用循环来画出多个点来从而绘画出图形,例如:
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
putpixel(x, y, BLUE);
}
}//画出的结果是一个边长为100的正方形
10.画弧
arc(x1,y1,x2,y2, stangle, endangle);//画出一个弧线
参数: 坐标(x1,y1),(x2,y2)表示一个矩形左下角、右上角坐标.内框一个内切椭球形
stangle表示弧的起始角度(为浮点数,弧度制)
endangle表示弧的末尾角度(为浮点数,弧度制)
画弧原则是,逆时针画弧
11.双缓冲(防止屏幕的跳动)
BeginBatchDraw();//
EndBatchDraw();//
12.贴图(放出图片)
IMAGE kk;//设立一个图片,命名为kk
loadimage(&kk,"img.jpg",x,y);//取地址,加载这个图片,同时设其长为x,高y(可以自行设立)
putimage(X, Y, &kk);//放出改图片,图片左上角的的坐标为(X,Y)
要点须知:要想放出图片,前提要找到图片的完整路径。或者可以把图片的文件放到编译文件的同一个目录上.
13.鼠标操作
MOUSEMSG msg; //定义一个鼠标消息
msg=GetMouseMsg();//获取鼠标消息
switch(msg.uMsg)
{
case WM_MOUSEMOVE: ……break;//鼠标移动消息
case WM_MOUSEWHEEL: ……break;// 鼠标滚轮拨动消息
case WM_LBUTTONDOWN: ……break;// 左键按下消息
case WM_MBUTTONDOWN: ……break;// 中键按下消息
case WM_RBUTTONDOWN: ……break;// 右键按下消息
}
一般我们结合switch语句来执行相关的操作
14.获取一个点的颜色
COLORREF getpixel(x,y);//x表示该点的横坐标,y表示纵坐标
返回值是一个像素点的RGB的值。
15.关闭绘图窗口
closegraph();//放在末尾