c++ easyX的学习
画象棋盘来浅显学习了解easyx
了解象棋盘的构成:

如图就为一个基本的象棋棋盘我们下面就用esayx来画出这个棋盘,我的感觉这个棋盘大概分为两个部分:第一部分就是棋盘的大致布局,第二个就是棋盘的细节实现
棋盘的代码实现:
首先根据网上的数据我们可以得到一个棋盘的长大概为420像素点,宽大概370个像素点,
initgraph(, );// 初始化720x640的绘图屏幕
setorigin(, );//设置坐标原点
//画外边框
setlinestyle(PS_SOLID,);
rectangle(,,wide,length);
setfillcolor(RGB(, , ));
fillrectangle(, , wide, length);
//画内边框
setlinestyle(PS_SOLID, );
rectangle(, , wide-, length-);
如上代码easyx这个库通过在划线或是矩形前设置矩形或是线的一些属性然后绘制,记得这些操作是不会改变得当且仅当你重新设置后才会有所变化
//画网格
for (int i = ; i <= ; i++)
{
line( + i*gridx, , + i*gridx, length - );
}
setbkmode(TRANSPARENT);
fillrectangle(, + * gridy, wide - , + * gridy);
for (int i = ; i <= ; i++)
{
line(, + i*gridy, wide - , + i*gridy);
}
//输入汉字
RECT r = { + , + * gridy, + * , + * gridy };
drawtext(_T("楚 河"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
RECT c = { + * , + * gridy, + * , + * gridy };
drawtext(_T("汉 界"), &c, DT_CENTER | DT_VCENTER | DT_SINGLELINE); //细节补充
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
接下来就是画网格这里我们注意一下当我们填充矩形颜色实如果我们还要在这块矩形上进行操作那么我们最好使用 setbkmode(TRANSPARANT);来设置透明填充这样就相当于真正的背景填充。另外我们在输入汉字时我们这里要使用TCHAR这种字符串,如果非UNICODE模式两者是相同的都是char如果UNICODE模式下(支持宽字节)TCHAR 为双字节, 为unsigned short 类型比如汉字和一些扩展字符都是2个字节表示的, 刚好可以和这个类型对应上,微软将这两种ANSI和UNICODE进行了统一,可以再“”前加上 _T 来转换成TCHAR类型。下图为完成的效果图:

下面贴上总的代码供小伙伴们参考!
#include<graphics.h>
#include<conio.h>
#include<string> enum {shiftingx=,shiftingy=,wide=,length=};
const int gridx = (wide - ) / ;
const int gridy = (length - ) / ; using namespace std; void main()
{
initgraph(, );// 初始化720x640的绘图屏幕
setorigin(, );//设置坐标原点
//画外边框
setlinestyle(PS_SOLID,);
rectangle(,,wide,length);
setfillcolor(RGB(, , ));
fillrectangle(, , wide, length);
//画内边框
setlinestyle(PS_SOLID, );
rectangle(, , wide-, length-);
//画网格
for (int i = ; i <= ; i++)
{
line( + i*gridx, , + i*gridx, length - );
}
setbkmode(TRANSPARENT);
fillrectangle(, + * gridy, wide - , + * gridy);
for (int i = ; i <= ; i++)
{
line(, + i*gridy, wide - , + i*gridy);
}
//输入汉字
RECT r = { + , + * gridy, + * , + * gridy };
drawtext(_T("楚 河"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
RECT c = { + * , + * gridy, + * , + * gridy };
drawtext(_T("汉 界"), &c, DT_CENTER | DT_VCENTER | DT_SINGLELINE); //细节补充
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, , + * gridx, + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
line( + * gridx, + * gridy, + * gridx, + * gridy + * gridy);
_getch();
closegraph();
}
c++ easyX的学习的更多相关文章
- C++经典绘图工具EasyX
EasyX简介 EasyX 在学习C语言时,很多同学抱怨说C只能写最简单的Demo程序,通过printf在屏幕上打印字符来验证代码.这样的编程很枯燥,一点没觉得自己在设计软件. EasyX是针对C++ ...
- C/C++入门级小游戏——开发备忘录
很多工科的学生在大一都有一门课程,叫C语言程序设计.大概就是装个IDE然后和一个黑乎乎的窗口打交道,期末到了考完试就结束了.然而很多人可能都有一个疑惑:C语言究竟能干什么?除开嵌入式单片机这些高大上的 ...
- easyx学习心得
前几天算法课的实验要求实现可视化,搞了半天没动咋实现,然后有大佬说用easyx,,,我寻思着也没教这玩意咋用啊.然后很烦躁的上网找教程,发现没有教怎么使用的,都说有一本说明书(链接),自己调用函数就可 ...
- easyX最新版在VS2015上的问题解决啦啦
7.10 修改完easyX的路径,只剩下一个问题 []无法解析的外部符号_iob_func,该符号在函数“”中被引用 []1个无法解析的外部命令 原因: 版本的问题,代码已经编译过了,但是是2012版 ...
- C图形库Easyx的使用
学习Eaxy X图形库后我的成果: 花了一周时间做出并完善了Flappy Bird,目前功能如下: 1. 背景的显示 2. 加入小鸟image 3. 小鸟自由下落,按空格键/鼠标右键后上升 4. 加入 ...
- EASY-X
----------------------- Page 1----------------------- 一 创建新项目 VC 写程序要有项目的概念,一个项目可以有多个 .cpp 文件,多个项目构 ...
- easyx的基础应用教程
引用 什么是 EasyX? 作者:EasyX EasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程. 比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或 ...
- PyQt 5 的学习引言
Python 是我学习的第二门编程语言,第一门编程语言是C. 曾经用C和C++的一个库(easyx库)写过图形界面应用, 感受就是难受又难看, 现在想学一下 PyQt 5 这个python的库, 用博 ...
- easyx图形库做贪吃蛇游戏
编程总是对着一个黑窗口,可以说是非常乏味了,于是喵喵就翻出来了以前用easyx图形库做图形界面的贪吃蛇游戏. 不过大家只是当做提高编程的乐趣来学习吧,想进一步做的话可以学习QT,还有其他的框架. 这是 ...
随机推荐
- 六十七:flask上下文之Local线程隔离对象
Local对象在flask中,类似于request对象,其实是绑定到了werkzeug.local.Local对象上,这样即使是同一个对象,在多线程中都是隔离的,类似的对象还有session以及g对象 ...
- Redis 高级应用
Redis SAVE 命令用于创建当前数据库的备份 该命令将在 redis 安装目录中创建dump.rdb文件. 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并 ...
- nginx主配置文件实例
1.修改配置文件 重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户 [root@host-10-1-1-161 html]# ll /etc/nginx/nginx.conf -rw- ...
- 使用 WebStorm alt+f2 快速打开浏览器测试的一点bug
这个bug是涉及到中英文文件名的问题(不涉及到路径名): Case 1: 中文文件名 当打开alt+f2快捷方式打开含有中文名的html文件时,路径名直接变为localhost,所以找不到要打开的文件 ...
- ES5与ES6常用语法教程之 ③模板字符串、判断字符串是否包含其它字符串
这部分教程我们主要讲解以下几个常用语法 模板字符串 带标签的模板字符串 判断字符串中是否包含其他字符串 给函数设置默认值 模板字符串 老式的拼接字符串方法 let dessert = '
- 扩展Caylay定理
参考资料: https://hyscere.github.io/2019/09/05/%E6%89%A9%E5%B1%95Caylay%E5%AE%9A%E7%90%86/ https://www.c ...
- poj2385(基础DP)
题目链接:http://poj.org/problem?id=2385 题意:最开始Bessie站在树1下面,每一个单位时间有颗苹果从树1或者树2上落下来.每个单位时间Bessie可以移动一次位置,时 ...
- SVN随笔记录(一)
svn是版本控制系统 为何使用svn? ~团队在开发同一个项目时对项目进行模块划分,在第一阶段结束后进行部分整合时,提交至服务器上合并. ~多人对同一版本的同一代码进行修改后,合并时会出现冲突,此是需 ...
- java 8 date time 简单样例
参考 Java 8 Time Api 使用指南-珍藏限量版 Java 8 中处理日期和时间示例 部分样例 import java.time.temporal.TemporalAdjusters; im ...
- linux 使用tmux
一. 什么是tmux 1.1. tmux 是两个单词的缩写,即“Terminal MultipleXer”,意思是“终端复用器“ 1.2. tmux 结构 1.2.1. tmux主要由三层: < ...