基本说明
Easyx是针对C++的图形库,可以帮助C/C++初学者快速上手图形和游戏编程。
比如,可以基于Easyx图形库很快的用几何图形画一个房子,或者一辆移动的汽车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏。
1.准备工作
1.想要调用EasyX库里的函数,首先调用头文件: <graphics.h>或<easyx.h>
注:<easyx.h>是只包含最新的API(函数),<graphics.h>包含了<easyx.h>和已经不推荐使用了的函数
2.我们想要画图,首先要有一张画布,创建画布的语法也非常简单,我们需要调用EasyX库里的一个函数: initgraph(int width, int height);
3.使用完画布要将画布关闭,需要调用函数:closegraph( );
#include<graphics.h>
#include<conio.h>//需要调用_getch()函数使程序暂停
int main()
{
const int width = 640;
const int height = 480;
initgraph(width, height);//初始化画布,640是画布宽度,480是画布高度
_getch();//暂停,等待键盘按键
closegraph();//关闭当前画布
return 0;
}
2.绘制函数
作为一个图形库最基础的功能就是画图,EasyX包括了许多绘制函数,如下所示
总的来说都是围绕着坐标来展开的,以点成线,以最简单的画直线为例子,你只需要设置好给定的四个参数(即起点和终点的逻辑坐标),那么就会以起始坐标开始画一条直线到终点坐标
那么以此类推,画圆形就是设定原点坐标和半径,那么根据各种不同的图案组合,你就能得到期望的图形或者效果。
如下例程分别绘制了直线、圆形、矩形和多边形:
#include<graphics.h>
#include<conio.h>//需要调用_getch()函数使程序暂停
int main()
{
const int width = 640;
const int height = 480;
initgraph(width, height);//初始化画布,640是画布宽度,480是画布高度
setbkcolor(0xFFFFFF);//设置背景色为白色
cleardevice(); //调用清屏cleardevice用背景色刷新背景
setlinecolor(0xFFAAAA);
line(width / 2 - 100, height / 2, width / 2, height / 2 - 100);//画线1
line(width / 2 + 100, height / 2, width / 2, height / 2 + 100);//画线2
line(width / 2, height / 2 - 100, width / 2 + 100, height / 2);//画线3
line(width / 2, height / 2 + 100, width / 2 - 100, height / 2);//画线3
circle(width / 2, height / 2, 100);//画布中心半径100的圆
circle(width / 2, height / 2, 68);//画布中心半径68的圆
rectangle(width / 2 - 100, height / 2 - 100, width / 2 + 100, height / 2 + 100);//圆的外接正方形
POINT pts1[] = { {width / 2, height / 2 - 68}, {width / 2 - 59, height / 2 + 34}, {width / 2 + 59, height / 2 + 34} }; //圆的两个内接三角形
POINT pts2[] = { {width / 2, height / 2 + 68}, {width / 2 - 59, height / 2 - 34}, {width / 2 + 59, height / 2 - 34} }; //坐标信息
polygon(pts1, 3); //画一个无填充多边形
polygon(pts2, 3); //参数1:坐标;参数2:多边形顶点数。
_getch();//暂停,等待键盘按键
closegraph();//关闭当前画布
return 0;
}
3.文字绘制
1.绘制文字
outtextxy(int x,int y,LPCTSTR str); //在(x,y)输出文字str,如 outtextxy(10,10,"你好");
注意:使用字符串时出现错误
解决方法:
在字符串前加上L,即outtextxy(10,10,L"你好");
2.设置字体颜色
settextcolor(颜色); //设置字体颜色,如 settextcolor(BLUE);
3.设置字体样式
settextstyle(int Height,int Width, 样式); //设置字体类型,如settextstyle(30,0,"微软雅黑");
Height : 即字体的平均高度 Width : 即字体的平均宽度(为0表示自适应)
4.获取文本的宽度
textwidth(文本); //获取文字宽度,如:textwidth("张三");
5. 获取文本的高度
textheight(文本); //获取文本高度,如:textheight("李四");
4.图像处理函数
1.图像类型变量 IMAGE
在使用图像之前,需要先定义一个变量(对象),然后把图片加载进变量能使用。
定义一个图像变量,如 IMAGE img;
2.加载图像
loadimage(&img, 文件路径,宽, 高,是否调整 IMAGE大小来适应图片); loadimage(IMAGE *pDstImg,文件路径, 宽,高, bool bResize = false);
相对路径: ./ 表示当前文件夹下 ../ 表示上一级文件夹 如:./123.jpg
绝对路径:C:\Users\ASUS\Desktop\eaxyX项目\eaxyX\eaxyX\123.jpg
如,loadimage(&img,"./123.jpg");
3.在设备上绘制图片
putimage(X,Y,&img) putimage(X,Y,&img,三元光栅操作码) //把(x,y)作为左上角顶点放置图片,最后一个参数一般用不到
如,putimage(0,0,&img); //放在左上角