EasyX图形库教程
本文的封面第三章照片来自博客:爱心气球
文章目录
前言
本文章所使用到的资源分享:(均是免费,白嫖万岁)
- 在线转换gif动图
- qq截图
- 在线画图网站:diagrams.net – 流程图
- 思维导图软件:Xmind
1.EasyX是什么?
EasyX
是针对 C++ 的图形库,可以帮助 C/C++ 初学者快速上手图形和游戏编程。虽然是C++图形库,但是C和C++不分家,只要你学了C语言,或者一门编程语言,那么学习成本都不会很高,学习门槛很低。它是可以帮助我们去实现图形化,优美化的小游戏的工具,例如:贪吃蛇,俄罗斯方块,扫雷等等。
大部分学校只交基础语法,一直都在黑窗口(也就是我们平时所说的控制台)上练习,同学们都学习很乏味。于是博主给大家出了一个
easyx
开发软件的教程哦~快乐学编程
2.EasyX的安装
操作系统:Windows XP(sp3) 及以上操作系统。
编译环境:Visual C++ 6.0,Visual Studio 2008 至 Visual Studio 2022 (x86 & x64)。
大家不要拿着devc++,gcc去下个EasyX图形库然后跟博主说我的用不了咧
安装网址(<—点这里)安装过程很简单,跟着指导来即可,而且不需要考虑会不会安装位置不对,在安装的时候它会找到你的vs的安装文件对应的位置进行安装,由于博主的vs版本是2013和2019,所以我安装的也是13和19的(两个都安装了),不出意义的话大家是可以去下载vs2022版本的EasyX的。
开始教程
特别注意:大家平时写程序怎么创建项目,就怎么创建项目即可,但是注意我们在使用EasyX的时候,源文件后缀要是.cpp
1.基本概念
1.1颜色
总所周知,所有的颜色都可以由三原色构成 :
- R – red – 红色
- G – green – 绿色
- B – blue – 蓝色
简称RGB
,也就是说只要有这三种颜色,那么我们可以通过改变这三种颜色的浓度值,即可构成不同的颜色
例如上述画板选中的颜色的值可以表示成RGB(128,128,192)
其中R G B的值的范围都是0~255
1.2坐标
没有小看大家,我们在数学中就已经学过平面直角坐标系了,如下
而当我们使用EasyX
创建的窗口的纵轴方向和上图中的是相反的。如下:
2.创建窗口 – 基本框架
我们在使用EasyX
的时候都是去调用图形库里面的接口,说白了就是学习它里面的函数怎么使用。
涉及接口:
HWND initgraph(int width, int height, int flag = 0);//创建窗口
void closegraph();//关闭窗口
//参数1决定窗口的宽度,参数2决定窗口的高度,参数三决定窗口的模式
参数3:
#define SHOWCONSOLE 1 // 显示控制台
#define NOCLOSE 2 // 不可关闭,就是窗口的❎不见了
#define NOMINIMIZE 4 // 不可最小化,就是窗口的➖不见了
代码演示1:
#include<graphics.h>//记得加上这个头文件
#include<stdio.h>
int main()
{
initgraph(1024, 480,SHOWCONSOLE);
getchar();//防止窗口一闪而过,我们让其等待输出停一会儿
closegraph();//关闭窗口
return 0;
}
在我们创建的窗口中,宽度和高度的单位是:像素点,当然了,我们要看完整的函数声明,是可以对函数名进行,右键 > 转到定义去查看的
大家可以将试一试这几个参数的效果,查看更多参数可以右键>转到定义,就可以看到更到的宏参数了
上面的三个参数是可以同时放进去的,就像这样initgraph(1024, 480,SHOWCONSOLE | NOCLOSE | NOMINIMIZE);
再次温馨提示,源文件必须是.cpp
文件
没错上面的窗口就是我们创建出来的窗口,我们发现它的窗口名不再是对应的项目路径,而且右侧已经不再是滚动条,说明此时它已经不是控制台窗口了,没错这个现在看起来还是很low,下面我们就自己设计一下自己的窗口
3.颜色设置
咱们先将可以设置颜色的接口介绍一遍,后面都会使用到
3.1背景颜色
使用到的接口
void setbkcolor(COLORREF color);//设置背景颜色,参数填入颜色RGB值
void cleardevice(); //清空设备
当这两个接收一起使用时,才能达到效果
3.2设置线条颜色
void setlinecolor(COLORREF color);
3.3设置文本颜色
void settextcolor(COLORREF color);
3.4设置填充颜色
void setfillcolor(COLORREF color);
4样式设置
咱们先将可以设置样式的接口介绍一遍,后面都会使用到
4.1设置背景样式
可以设置成是背景是填充还是覆盖
void setbkmode(int mode);//设置背景模式
参数:
#define TRANSPARENT 1 //透明的
#define OPAQUE 2 //覆盖的
默认不设置的情况下是覆盖的的
4.2设置线条样式
void setlinestyle(int style, int thickness = 1, const DWORD *puserstyle = NULL, DWORD userstylecount = 0);
//第一个参数是设置线条的样式 -- 实线,虚线等
参数1:
#define PS_SOLID 0
#define PS_DASH 1 /* ------- */
#define PS_DOT 2 /* ....... */
#define PS_DASHDOT 3 /* _._._._ */
#define PS_DASHDOTDOT 4 /* _.._.._ */
//参数2是设置线条的宽度,单位是像素点
第三个参数,第四个参数大家可以不填
4.3设置文本样式
void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace);
//参数1:文本高度
//参数2:文本宽度
//参数3:文本的字体 -- 大家可以理解成就是填一个const char*的参数
参数三:
1. "宋体"
2. "楷体"
很多很多,大家可以试一试word里面的那些字体哪些可以用
⚠:千万注意,千万注意,千万注意,很多同学在使用文本接口的时候经常报错,这是应为需要修改项目属性,我们要将使用 Unicode 字符集 — 改成 使用多字节字符集
5.绘制图形
你在画板中可以画的图案,几乎都可以做到,下面我们已画圆举例
画圆示例
使用的接口:
void circle (int x, int y, int radius); //画一个由线条边框组成,无填充的圆
void fillcircle (int x, int y, int radius); // 画一个有线条边框,有填充的圆
void solidcircle(int x, int y, int radius); //画一个无线条边框,有填充的圆
x y–即圆的坐标,radius – 即圆的半径
代码举例2:
#include<stdio.h>
#include<graphics.h>
//1.设置颜色
void set_color()
{
//1.设置背景颜色,要和cleardevice一起使用
setbkcolor(RGB(204, 232, 207));//将背景设置成浅绿色
cleardevice();
//2.设置线条颜色
setlinecolor(RGB(128, 255, 255));//将线条颜色设置成天蓝色
//3.设置填充颜色
setfillcolor(RGB(255, 201, 14));//设置填充颜色为黄色
//4.设置文本颜色
settextcolor(RGB(245, 245, 245));//文本颜色设置成白色
}
//2.设置样式
void set_mode()
{
//1.将背景设置成透明
setbkmode(TRANSPARENT);
//2.将线条设置成3个像素点宽度
setlinestyle(PS_SOLID, 3);
//3.将文本高度设置成20,宽度设置成10,字体设置成楷体
settextstyle(20, 10, "楷体");
}
//3.绘制图案
void draw_picture()
{
circle(50,50,50);//在(50,50)的位置画一个圆
fillcircle(150, 50, 50);
solidcircle(250, 50, 50);
}
int main()
{
initgraph