Easyx基本说明:
EasyX是一个针对Visual C++的免费绘图库。EasyX Graphics Library作为一款广受欢迎的图形库,为Visual C++提供了强大的绘图支持,使得在C/C++环境下的图形编程变得简单高效。下面将深入探讨EasyX的特点、安装过程、学习成本、应用场景以及发布过程等多个方面:
1. EasyX的特点
简易性:EasyX设计的初衷就是简化绘图流程,让用户能够"下载 -> 安装 -> 使用",整个过程极为便捷。这种设计理念大大降低了用户的入门门槛,使得即使是没有图形编程经验的初学者也能快速上手。
2. EasyX的学习成本
易于理解的文档:EasyX提供了丰富的在线参考手册,这些文档详细解释了每个函数的用法,使得用户能够快速理解和使用库中的功能
面向教学的设计:EasyX的简单性使得它成为教学的理想选择,学生可以更容易地掌握图形编程的基本概念和技术
3. EasyX的应用场景
C/C++学习:EasyX可以帮助C/C++语言的初学者快速理解图形编程的基本概念,通过实践提高编程技能Θic-1Θ。
游戏开发:对于想要进入游戏开发领域的开发者来说,EasyX提供了一个简单的方式来创建和测试基本的游戏玩法和图形效果。
4. EasyX的发布过程
静态编译:EasyX采用静态编译的方式,不依赖于任何动态链接库(dll),这使得发布过程更加简洁,不会因为引入EasyX而增加发布的负担
单文件运行:如果将Visual C++的运行时库改为静态链接模式,编译后的程序可以单文件运行,这对于发布和分发软件极为方便
综上所述,Easy以其简易性、低学习成本、广泛的应用场景和便捷的发布过程,成为了C/C++开发者在图形编程领域的强大工具。EasyX为用户提供了一个高效、便捷的解决方案,帮助用户轻松实现图形绘制和处理的需求。
EasyX安装:
1.系统支持:
操作系统:Windows XP(sp3) 及以上操作系统。
编译环境:Visual C++ 6.0,Visual Studio 2008 至 Visual Studio 2022 (x86 & x64)。
2.安装:
https://easyx.cn/ 进入官网直接下载EasyX文件
安装完成后在VS中建立新的空项目需要在文件中加入头文件
#include <easyx.h>提供了当前最新版本的接口
#include<graphics.h>在easyx.h的基础上,保留了一些旧接口
可以查看关于easyx的相关说明和函数原型,对使用easyx学习的新手有许多益处
EasyX基本使用:
1.绘图窗口:
在easyx中多数关键词,函数名功能通过它的英文名称都能有一个大概的判断
1.默认窗口 2.IMAGE对象,通过SetWorkingmage()函数可以设置当前用于绘图的设备
初始化绘图窗(窗口宽度,窗口高度,)单位像素
HWND inttgraph(int width,int height,int flag=NULL);第三个参数为窗口样式(以下三种)
#define SHOWCONSOLE 创建图形窗口时保留控制台显示
#define NOCLOSE //没有关闭功能
#define NOMINIMIZE //没有最小化功能
void closegraph();关闭绘图窗口函数
void cleardevice();清空绘图设备
EasyX中有俩类坐标(以窗口左上角原始坐标原点,y轴向下):
1.物理坐标:坐标原点和方向不能修改,度量单位为像素
2.逻辑坐标:坐标原点和方向可以修改,度量单位为点
移动逻辑坐标:void setorigin(int x,int y);
翻转逻辑坐标:void setaspectratioc(float xasp,float yasp)
2.图形函数:
(1)绘图函数从填充样式可分为三类:
以画圆为例:circle()无填充;fillcircle()有边框填充;solidcircle()无边框填充;
(2)绘图函数使用:
设置填充颜色 setfillcolor();
设置线条颜色 setlinecolor();
设置线条样式 setlinestyle(线型,线条宽度,样式,);
一个简单的绘图项目的基本要素就如下图所示:
#include <stdio.h>
#include <math.h>
#include <graphics.h>
#define flag SHOWCONSOLE
#define PI 3.1415926
int main()
{
//1.默认窗口 2.IMAGE对象,通过SetWorkingmage()函数可以设置当前用于绘图的设备
//初始化绘图窗(窗口宽度,窗口高度,)单位像素
//#define SHOWCONSOLE 创建图形窗口时保留控制台显示
//#define NOCLOSE 没有关闭功能
//#define NOMINIMIZE 没有最小化功能
initgraph(800, 600);
//移动逻辑坐标
setorigin(400, 300);
//修改y轴正方向
setaspectratio(1, -1);
//设置背景颜色
setbkcolor(BLUE);
cleardevice();
//书写绘图函数
//暂时阻塞程序,等待用户按键再关闭
getchar();
//关闭绘图窗体函数
void closegraph();
//清空绘图设备
void cleardevice();
return 0;
}
这是我使用蓝色背景随便绘制了一些简单的图形,希望可以引起还没有使用过EasyX同学的好奇心,可以积极去探索这个绘图工具
文字绘制函数用于窗口上绘制
void outtextxy(int x, int y, LPCTSTR str);//在指定位置输出字符串
void settextcolor(COLORREF color);//设置当前文字颜色
settextcolor(RGB(, , ,));
void setbkmode(TRANSPARENT); //设置背景模式 transparent 透明 OPAQUE 不透明
//bkmode_LAST 不透明(将文本的背景模式设置为最后一个可用的模式)
void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace);//设置字样样式
//(指定高度,字符的平均宽度如果为零则比列自适应,字体名称)
settextstyle(50,0,'楷体');
//用于文本的垂直和水平居中显示
void textheight(LPCTSTR str);//获取字符串实际占用的像素高度
void textwidth(LPCTSTR str);//获取字符串实际占用的像素宽度
结语:
在EasyX中还有许许多多的绘图函数和一些我上文未提及的使用和操作方法,也希望同学们可以去抱着学习的心态,充满好奇心的去积极探索未知的知识世界,让自己充实起来,去掌握知识,学会运用知识。
如果喜欢,请点个赞吧!