Window10 中Dev-C++ 使用EGE绘图库编程介绍与示例

Window10 中Dev-C++ 使用EGE绘图库编程介绍与示例

EGE(Easy Graphics Engine)是windows下的一个C++绘图库,操作简单,可以通过简单地调用实现在窗口上进行绘图,并且增加了鼠标,键盘等交互功能,可以完成简单的程序。

试验环境是DevCpp 5.11(下载地址Dev-C++ download | SourceForge.net) 和ege19.01_all (下载地址http://xege.org/download/ege19.01_all.7z)

EGE的官网地址Easy Graphics Engine – EGE图形库主站 可以在此获取帮助和范例。

在此讲解Dev-C++5.11版本配置使用ege19.01_all

先将DevC++ 5.11先安装好,DevC++安装过程很简单,在此不多说了。

将下载的EGE压缩文件解压后,如下操作:

1、复制解压后include目录里面的内容(包括ege目录、ege.h文件、graphics.h文件)到DevC++的安装目录D:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include中(下划线部分是安装路径,根据你的实际情况而定)

这里一定要注意,因为有很多include目录,不要搞错。

2、复制解压后lib\mingw64\lib目录里面的libgraphics64.a文件到DevC++的安装目录D:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2中

3、上述两步做好后, 打开DEV-C++软件, 打开菜单中文界面时选择 工具 → 编译选项(在英文界面时选择 Tools →Compiler options):

在链接器框(linker)中加入 -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -luuid

若其中已有内容,要键入一个英文空格分隔,再加入。

中文界面时参见下图:

 【英语界面时参见下图:

 

顺便提示,Dev-C++ 中关闭和恢复控制台的设置方法,参见下图:

控制台(Console),也称为cmd窗口。-mwindows链接参数,能屏蔽(关闭)控制台,但这会造成无法利用控制台输入输出。若屏蔽了控制台,直接双击运行生成的exe文件时,将不显示控制台窗口。】

其它开发工具如Visual Studio、VS Code、CodeBlocks的EGE配置在此就不介绍了,可参见官网。

EGE安装是否成功的测试代码:

#include "graphics.h" // 就是需要引用这个图形库 
int main() { 
	setinitmode(0); // 关闭ege启动画面
    initgraph(640, 480); // 初始化绘图窗口的宽度和高度
    circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 
    getch(); // 暂停一下等待用户按键 
    closegraph(); // 关闭图形界面 
    return 0; 
} 

编译运行若不报错,显示如下:

OK!

说明:

第一行是包含一个头文件,即 #include <graphics.h>, 这是EGE图形库里的头文件,并不是编译器里自带的,安装时有放入库路径中。

Circle()是绘制圆的函数,格式:

circle(int x, int y, int radius);

 x, y 是圆心的坐标了,radius 是半径

窗口坐标系如下图所示,原点 (0, 0) 在左上角,往右是 x 轴 正方向,往下是 y轴正方向。窗口大小为 640 x 480。

getch(),暂停等待用户按键,当用户按下任何一个键后才继续往下执行。

closegraph(),即关闭图形窗口。

还可以设置绘画颜色和窗口背景颜色,如:

    setcolor(EGERGB(0xFF, 0x0, 0x0));//设置绘画的前景色EGERGB(0xFF, 0x0, 0x0),即红色

    setbkcolor(WHITE);//设置背景颜色WHITE,即白色

setcolor() 是设置绘画的前景色。setbkcolor() 是设置背景颜色,即 set background color;EGERGB 是个宏定义,将三个参数——R (red, 红), G (green, 绿), B (blue, 蓝)——转成 RGB颜色值。每个参数值为0~255, 用十六进制表示即0x0~0xFF, 值越大,颜色越亮

EGE 还定义有一些其它常用的颜色枚举,可以直接用,比如WHITE, BLACK, BLUE, RED等:

enum COLORS {

    BLACK           = 0,                           黑色

    BLUE            = EGERGB(0, 0, 0xA8),           蓝色

    GREEN           = EGERGB(0, 0xA8, 0),           绿色

    CYAN            = EGERGB(0, 0xA8, 0xA8),        青色

    RED             = EGERGB(0xA8, 0, 0),           红色

    MAGENTA         = EGERGB(0xA8, 0, 0xA8),        品红色

    BROWN           = EGERGB(0xA8, 0xA8, 0),        棕色

    LIGHTGRAY       = EGERGB(0xA8, 0xA8, 0xA8),     浅灰

    DARKGRAY        = EGERGB(0x54, 0x54, 0x54),     暗灰

    LIGHTBLUE       = EGERGB(0x54, 0x54, 0xFC),     浅蓝

    LIGHTGREEN      = EGERGB(0x54, 0xFC, 0x54),     浅绿

    LIGHTCYAN       = EGERGB(0x54, 0xFC, 0xFC),     浅青

    LIGHTRED        = EGERGB(0xFC, 0x54, 0x54),     浅红

    LIGHTMAGENTA    = EGERGB(0xFC, 0x54, 0xFC),     浅品红

    YELLOW          = EGERGB(0xFC, 0xFC, 0x54),     黄色

    WHITE           = EGERGB(0xFC, 0xFC, 0xFC),     白色

};

修改上例,添加设置绘画颜色和窗口背景颜色,代码如下:

#include "graphics.h" // 就是需要引用这个图形库 
int main() { 
	setinitmode(0); // 关闭ege启动画面
    initgraph(640, 480); //初始化绘图窗口的宽度和高度 
    setcolor(EGERGB(0xFF, 0x0, 0x0));	//设置绘画颜色为红色EGERGB(0xFF, 0x0, 0x0)
	setbkcolor(WHITE);					//设置背景颜色为白色
    circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 
    getch(); // 暂停一下等待用户按键 
    closegraph(); // 关闭图形界面 
    return 0; 
} 

#include "graphics.h" // 就是需要引用这个图形库

int main() {

    setinitmode(0); // 关闭ege启动画面

    initgraph(640, 480); // 初始化,显示一个窗口,这里和 TC 略有区别

    setcolor(EGERGB(0xFF, 0x0, 0x0));   //设置绘画颜色为红色EGERGB(0xFF, 0x0, 0x0)

    setbkcolor(WHITE);                 //设置背景颜色为白色

    circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100

    getch(); // 暂停一下等待用户按键

    closegraph(); // 关闭图形界面

    return 0;

}

编译运行显示如下:

EGE简单作图——画线

//EGE简单作图--画线 
#include <graphics.h>
 
int main()
{
        setinitmode(0); // 关闭ege启动画面
		initgraph(640, 480);
 
        //设置画图颜色,GREEN是颜色常数,详见graphics.h对这个宏的定义的值
        setcolor(GREEN);
 
        //画一直线,从(100,100)到(500,200)
        //特别注意的是端点,(100,100)这个点会被画上颜色,但(500,200)不会画上颜色
        
        line(100, 100, 500, 200);
 
        getch();
 
        closegraph();
        return 0;
}

运行显示如下:

绘图窗口清屏函数

cleardevice()

整个窗口就会被背景色填充

官网入门基础示例 入门基础示例

官网库函数介绍 库函数目录

官网绘图函数 绘制图形相关函数

背景图片和音乐

请先准备好一副jpg图片和一首mp3音乐换下面代码中的图片和音乐

#include <graphics.h>
int main()
{
	initgraph(800, 500, INIT_RENDERMANUAL);

	//背景图
	PIMAGE bgPimg = newimage();
	if (getimage(bgPimg, "d:/背景图片.jpg") != grOk) {
  	  //读取图片文件失败
      exit(-1);
	}
	//绘制一下
	putimage(0, 0, bgPimg);
	delay_ms(0);
    
    //背景音乐
	MUSIC bgMusic;
	//OpenFile() 函数打开音乐文件, 参数是带扩展名的音乐文件名。
	bgMusic.OpenFile("d:/可可托海的牧羊人 - 王琪.mp3");
	bgMusic.SetVolume(1.0f);
	if (bgMusic.IsOpen()) {
		bgMusic.Play(0);
	}

    getch();
	
	bgMusic.Close();
	
	closegraph();

	return 0;
}

运行效果如下:

在此基础上,可以开发简单的游戏了。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值