智绘教 —— 全新一代屏幕画板工具 金牌收录

智绘教——不仅仅只是一个屏幕画笔工具。是一个运行于桌面的画板的软件,可以用于教学,网上授课和非常多的场景。绝大部分 Windows 电脑和教学一体机都可以使用。无论是屏幕的书写,还是图形的绘制,都可以轻松驾驭。由 HiEasyX(EasyX 扩展库) 和 GDI+ 驱动,项目开源。

使用 EasyX 实现的学生成绩管理系统 银牌收录

这是一个使用 C++ 和 EasyX 绘图库实现的学生成绩管理系统,里面包含了查看学生、搜索学生、添加学生等操作。简单地封装了一下界面,使得程序可以添加按钮、表格等控件,在细节方面处理得也比较到位。代码中运用到了一些类、继承、多态等面向对象特性,值得初学者学习。

Photo Editor 铜牌收录

寒假过半的时候,我突发奇想写一个图片编辑器出来,经过半个月的折腾写出来这个 Photo Editor,代码不算优良,仅供参考

量角器 银牌收录

编写过程

该程序借鉴了以前编写的时钟罗盘,以及参考官网上窗口技巧实现圆形窗口。实现了一个简单的量角器程序,可以通过量角器测量一些简单图形的角度弧度等信息。

编写灵感

我在绘制图形时,需要使用 arc 这个函数,但是该函数的参数获取比较麻烦,需要获得的弧的起始角度和终止角度。那这个角度如何获取呢,其实办法有很多,例如将要绘制的图像导入到 CAD 中直接就可以量,也可以用量角器量,或者手机下载软件来量,但是最终的麻烦程度超过了写一个程序所需要的时间。所以我索性编写了一个量角器,来解决编写程序过程中遇到的麻烦。程序本来就是来解决麻烦的,而不是制造麻烦的。

使用方式

鼠标左键长按到红色的圈上可以实现量角器的拖拽,左键点击外边红色的圈可以实现量测,右键点击红色的圈退出程序。

截图

量角器

源码

////////////////////////////////////////
...

我的世界红石模拟器(MinecraftRedstoneSimulator) 铜牌收录

项目介绍

这个项目是游戏《我的世界》中的红石模拟器。

程序由两个窗口组成,一个是用来输入的 cmd 窗口,另一个是用来显示地图的绘图窗口。

执行效果:

这是一个 3 x 6 点阵灯,显示着字母 A。

尽管这个模拟器是平面的,但他仍然可以实现许多在 Minecraft 中可以实现的东西,此处不再举例,release 中有 map 文件夹,里面有预设的地图,可以参考。

更多内容请在程序中输入 help 指令查看帮助。

项目下载

下载链接:https://github.com/zouhuidong/MinecraftRedstoneSimulate/

基于 MCI 播放,EasyX 为界面的音乐播放器 铜牌收录

这是一个基于 MCI 播放,使用 EasyX 作为界面的简单本地音乐播放器,支持以下操作:设置音乐搜索路径(在文件中设置),播放,暂停,下一曲,上一曲,单曲循环,顺序播放(列表循环),随机播放,设置音量大小,拖动音乐进度条(快进,快退),滚动条,展开/关闭播放列表,更换背景图等。

猪圈密码 铜牌收录

猪圈密码(Pigpen cipher),亦称共济会密码(英语:masonic cipher)或 共济会员密码(英语:Freemason's cipher),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。


(Hello EasyX)

以下是使用EasyX绘制猪圈密码的一种方式。

#include <graphics.h>
#include <string>

namespace thatboy
{
	namespace Pigpen
	{

		enum : UINT
		{
			PIG_NULL = 0
			, LINE_LEFT = 0X0001 // │
			, LINE_TOP = 0X0002 // ─
			, LINE_RIGHT = 0X0004 // │
			, LINE_BOTTON = 0X0008 // ─
			, ARROW_RIGHT = 0X0010 // 
...

EasyUI:基于 EasyX 的 UI 界面库(by 祝融) 银牌收录

EasyUI 类构成指南

EasyUI 将 UI 拆分成了两个部分--绘制单元和事件触发器。
使用者可以使用绘制单元来控制 UI 的风格,同时选择一定的事件触发器来使 UI 具备响应事件的功能。

绘制单元:

-CDrawCell:所有绘制单元的基类
-CSimpleShape:继承自 CDrawCell,集成了通过 EasyX 图形绘制函数绘制的图形属性
-CHaveSize:所有拥有大小的类的基类
-CRect:继承自 CSimpleShape,绘制一个矩形
-CRoundRect:继承自 CSimpleShape,绘制一个圆角矩形
-CCircle:继承自 CSimpleShape,绘制一个圆形,并以绘制位置为中心(所有绘制单元都从左上角画起,除了圆)
-CEllipse:继承自 CSimpleShap,绘制一个椭圆(通过外接矩形)
-CText:继承自 CDrawCell,输出一串字符串
-CUIIm

...

可以自由定制的电子相册(by 席锦) 铜牌收录

这是一个自已DIY内容并且具有背景音乐的电子相册。通过自定义内容,可以制作成属于自己的电子纪念册。

点击小图可以查看每张图片以及对于的图片文字描述,按下 w、s、a、d、↑、↓、←、→ 按键可以达到和鼠标点击的同样效果。支持跳转至任意一张已加载的相片,也支持自动循环浏览相册,具体操作请点击对应的工具图标。

执行效果如下:

操作说明:

  1. 点击小相片将看到对应的大相片和相片印记
  2. 点击不同的工具图标将产生不同的效果
  3. 支持按键 w、s、a、d、↑、↓、←、→,作用分别是上下移动和左右翻页
  4. 支持跳转至任意编号相片
  5. 支持内容 DIY,具体操作请参照 Set.ini
  6. rc 文件为程序图标,不可修改
  7. res 为程序 DIY 内容所在文件夹,里面内容皆可修改

该项目的编译环境为:VS2017 + EasyX_20190314(beta)

完整的源代码【请点击这里下载】。

...

功能强大的计算器(by 尔灵尔亿) 银牌收录

这个计算器程序是模仿 Windows 10 系统的计算器所写的,借鉴了 Windows 10 计算器的一些外观设计以及所包含的一些功能,但是实现此计算器的所有算法是自己独立开发,其中的一些功能或许没有写的很完善。

下面介绍此计算器所包含的一些功能,以及用法。

计算器包含两大功能:计算功能、转换功能。计算功能包含普通计算器、科学计算器、超大数的计算、解一元一次方程。转换器包含体积转换、长度转换、重量转换、温度转换、能量转换、面积转换、速度转换、时间转换、功率转换、数据转换、压力转换、角度转换,包含了基本所有常用的转换。

普通计算器:实现最普通的加减乘除,通过用户输入的字符串(中缀表达式),转换为计算机可以计算的后缀表达式(后缀表达式又称逆波兰式),最后通过栈来实现计算。

科学计算器:所谓的科学计算器只是加上了一些可以计算的函数,如 sin、cos、tan 等,这个计算器不是按上面普通计算器的实现方法,而是通过数字的直接计算,功能实现的不是很好(所以我认为科学计算用起来是不怎么好用)。

超大数计算:实现一些很大的数

...

LuaEasyX——用 Lua C/API 封装 EasyX(by 小冰) 铜牌收录

相信看到这篇文章大部分得小伙伴都是用过 EasyX 的,这是一个 Windows 下的 C++ 图形库,过多的介绍不再赘述。

当初接触 EasyX 时,我最大的感触就是:哇,原来还有这么简单易用的图形库!!!!

用过一段时间感觉很棒,推荐给大家!

某次突发奇想,要不我把 EasyX 封装成 Lua 模块吧,这样子就不受到编译器的限制了,只要装有相应版本的 Lua 解释器,并且提供运行库那就很 OK 啦。

大家  LuaEasyX =  require "LuaEasyX"  后自己 for k,v in pairs(LuaEasyX) do print(k,v) end 看一看

我也懒得做文档了,因为 LuaEasyX 本质就是对 EasyX 的再次封装,API 的参数几乎一模一样。

在下面放出的文件中我会把一些API的差异给列出到一个文本文档中。

以后还会用自己封装的LuaEasyX来再做几个小游戏给大家玩玩的。

大家到时候拿来过过瘾就好啦,哈哈哈

...

基于 EasyX 的实时信号绘制工具(by Ephemeroptera) 铜牌收录

由于最近从 matlab 转接到 vs 平台继续自己的仿真工作,但是却一直没有找到简易 plot 工具,于是尝试用 EasyX 开发一个绘制波形的小工具,希望可以帮助到有需要的人。

执行效果如图:

完整源代码如下:

/******************************************************************************************/
// EasyPlot 是基于 EasyX 绘图库(https://www.easyx.cn)而编写的,对实时信号进行绘制的一个工具
// 以下代码为了便于学习以源文件形式展示,如果应用于工程建议采用头文件形式封装
// 本文采用Unicode字符集,ANSI环境的读者注意相关地方格式的转换
// 作者:Ephemeroptera
// 地点:安徽大学
// 联系方式:605686962@qq.com
// 最后修改时间:2018-11-29
/*************
...