学习目标:
- 1.基本说明
- 2.安装和卸载
- (1)安装
- (2)卸载
-
(3)手动安装方法
-
3.使用教程
-
4.基本概念
-
5.函数说明
-
6.示例程序
-
7.常见问题
学习内容:
- 1.基本说明
- 2.安装和卸载
- (1)安装
- (2)卸载
-
(3)手动安装方法
-
3.使用教程
-
4.基本概念
-
5.函数说明
-
6.示例程序
-
7.常见问题
1.基本说明
EasyX 是针对 C++ 的图形库,可以帮助 C/C++ 初学者快速上手图形和游戏编程。
比如,可以基于 EasyX 图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练习图形学的各种算法,等等。
许多人学编程都是从 C 语言入门的,而现状是:
有些学校以 Turbo C 为环境学习 C 语言,只是 Turbo C 实在太老了,复制粘贴都很不方便。
有些学校直接拿 VC 来讲 C 语言,因为 VC 的编辑和调试环境都很优秀,并且 VC 有适合教学的免费版本。可惜在 VC 里面只能做一些文字性的练习题,想画条直线或一个圆都很难,例如需要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,很是无奈。
还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。所以,许多老师不得不用 TC 教学,因为 Windows 绘图太复杂了,会偏离教学的重点。新的图形学的书有不少是用的 OpenGL,可是门槛依然很高。
所以,我们想给大家一个更好的学习平台,就是 VC 方便的开发平台和 TC 简单的绘图功能,于是就有了这个 EasyX 库。如果您刚开始学 C 语言,或者您是一位教 C 语言的老师,再或者您在教计算机图形学,那么这个库一定会让您兴奋的。
2.安装和卸载
系统支持
操作系统:Windows XP(sp3) 及以上操作系统。
编译环境:Visual C++ 6.0,Visual Studio 2008 至 Visual Studio 2022 (x86 & x64)。
(1)安装
请下载最新版 EasyX 安装程序,直接运行,并跟随提示安装即可。
安装程序会自动检测您已经安装的 VC 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VC 的 include 和 lib 文件夹内。安装程序不会修改注册表或者您本机的其它任何文件。
(2)卸载
由于安装程序并不修改注册表,因此您在应用程序列表中不会看到 EasyX 的卸载项。如需卸载,请再次执行对应版本的安装程序,并根据提示卸载。也可以手动将相关的 .h 和 .lib 删除,系统中不会残留任何垃圾信息。
(3)手动安装方法
EasyX 安装程序是用 7-Zip 封装的自解压缩包程序。
手动安装时,可以直接用 7-Zip 将安装文件解压,再根据下面的文件列表说明,将解压后的相关文件分别拷贝到 VC 对应的 include 和 lib 文件夹内。
您也可以将所需的 include 和 lib 文件夹放到任意位置,然后在 VC 中增加 Lib 和 Include 的引用路径。
文件列表说明:
EasyX 安装程序
├ include <folder>
│ ├ easyx.h // 头文件(提供了当前最新版本的接口)
│ └ graphics.h // 头文件(在 easyx.h 的基础上,保留了若干旧接口)
├ lib <folder>
│ ├ VC6 <folder>
│ │ └ x86 <folder>
│ │ ├ EasyXa.lib // VC6 库文件(MBCS 版本)
│ │ └ EasyXw.lib // VC6 库文件(Unicode 版本)
│ ├ VC2008 <folder>
│ │ ├ x64 <folder>
│ │ │ ├ EasyXa.lib // VC2008 ~ 2013 库文件(x64, MBCS 版本)
│ │ │ └ EasyXw.lib // VC2008 ~ 2013 库文件(x64, Unicode 版本)
│ │ └ x86 <folder>
│ │ ├ EasyXa.lib // VC2008 ~ 2013 库文件(x86, MBCS 版本)
│ │ └ EasyXw.lib // VC2008 ~ 2013 库文件(x86, Unicode 版本)
│ └ VC2015 <folder>
│ ├ x64 <folder>
│ │ ├ EasyXa.lib // VC2015 ~ 2022 库文件(x64, MBCS 版本)
│ │ └ EasyXw.lib // VC2015 ~ 2022 库文件(x64, Unicode 版本)
│ └ x86 <folder>
│ ├ EasyXa.lib // VC2015 ~ 2022 库文件(x86, MBCS 版本)
│ └ EasyXw.lib // VC2015 ~ 2022 库文件(x86, Unicode 版本)
└ Setup.hta // 安装程序
(4)获取帮助文档
EasyX 的使用帮助,请参考 https://docs.easyx.cn。
可以从该网站下载离线版本的帮助文档。
(5)项目依赖
EasyX 库采用静态链接方式,不会为您的程序增加任何额外的 DLL 依赖。
3.使用教程
EasyX 在使用上非常简单。
比如:启动 Visual C++,创建一个空的控制台项目(Win32 Console Application),然后添加一个新的代码文件(.cpp),并引用 graphics.h 头文件就可以了。
看一个画圆的例子:
#include <graphics.h> // 引用图形库头文件
#include <conio.h>
int main()
{
initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素
circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100
_getch(); // 按任意键继续
closegraph(); // 关闭绘图窗口
return 0;
}
Copy
当然,EasyX 也可以在 Win32 Application 项目上使用。需要注意的是,Win32 Application 项目没有控制台,所以无法使用控制台相关的函数。
4.基本概念
相关内容如下:
基本概念 | 描述 |
---|---|
颜色 | 描述颜色的各种表示方法。 |
坐标 | 描述坐标系。 |
设备 | 描述“设备”概念。 |
4.1颜色
EasyX 使用 24bit 真彩色,不支持调色板模式。
表示颜色的方法
1. 用预定义常量表示颜色
常量 值 颜色
-------- -------- --------
BLACK 0 黑
BLUE 0xAA0000 蓝
GREEN 0x00AA00 绿
CYAN 0xAAAA00 青
RED 0x0000AA 红
MAGENTA 0xAA00AA 紫
BROWN 0x0055AA 棕
LIGHTGRAY 0xAAAAAA 浅灰
DARKGRAY 0x555555 深灰
LIGHTBLUE 0xFF5555 亮蓝
LIGHTGREEN 0x55FF55 亮绿
LIGHTCYAN 0xFFFF55 亮青
LIGHTRED 0x5555FF 亮红
LIGHTMAGENTA 0xFF55FF 亮紫
YELLOW 0x55FFFF 黄
WHITE 0xFFFFFF 白
Copy
2. 用 16 进制数字表示颜色
16 进制的颜色表示规则为:0xbbggrr (bb=蓝,gg=绿,rr=红)
3. 用 RGB 宏合成颜色
详见 RGB。
4. 用 HSLtoRGB、HSVtoRGB 转换其他色彩模型到 RGB 颜色
示例
以下是几种设置画线颜色的方法:
setlinecolor(0xff0000);
setlinecolor(BLUE);
setlinecolor(RGB(0, 0, 255));
setlinecolor(HSLtoRGB(240, 1, 0.5));
4.2坐标
在 EasyX 中,坐标分两种:物理坐标和逻辑坐标。
物理坐标
物理坐标是描述设备的坐标体系。
坐标原点在设备的左上角,X 轴向右为正,Y 轴向下为正,度量单位是像素。
坐标原点、坐标轴方向、缩放比例都不能改变。
逻辑坐标
逻辑坐标是在程序中用于绘图的坐标体系。
坐标默认的原点在窗口的左上角,X 轴向右为正,Y 轴向下为正,度量单位是点。
默认情况下,逻辑坐标与物理坐标是一一对应的,一个逻辑点等于一个物理像素。
在本手册中,凡是没有注明的坐标,均指逻辑坐标。
请参阅
setorigin:修改坐标原点。
setaspectratio:修改坐标轴方向。
setaspectratio:修改缩放比例。
设备
“设备”,是指绘图表面。
在 EasyX 中,设备分两种,一种是默认的绘图窗口,另一种是 IMAGE 对象。通过 SetWorkingImage 函数可以设置当前用于绘图的设备。
设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。
5.函数说明
EasyX 函数分为以下几类:
6.示例程序
更多示例程序,请访问 https://codebus.cn
示例名称 | 描述 |
---|---|
字符阵 | 该程序示范了常见的绘图操作,包括设置字体、画线等。 |
星空 | 该程序实现了二维星空的动态效果。 |
鼠标操作 | 该程序示范了常见的鼠标操作,程序执行后会在鼠标的移动轨迹上画红点,按左键画小方块,按 Ctrl + 左键画大方块,按右键退出程序。 |
彩虹 | 该程序是 HSL 色彩模型的应用范例,程序通过调节 HSL 模型的亮度绘制渐变的天空,调节色相绘制七色彩虹。 |
7.常见问题
这里列举出了使用 EasyX 的一些常见问题:
更多的常见问题,请访问 EasyX 官方网站,以及 EasyX 社区。
还可以到 EasyX 社区进行更多编程问题的讨论。
学习时间:
学习时间为不运动的时候,作者咕咕了是去运动(无氧运动和有氧运动都做最好)了,请饶恕。
学习产出:
画工
python--7class()的练习|未完end....... http://t.csdnimg.cn/C1PB1
python--6作业|笔记( 继python--2class)__init__,__str__ ,封装__ 重载, main继承 |练习,run,#面向对象封装摆放家具|未完end....... http://t.csdnimg.cn/M4cdm
python--5--len() http://t.csdnimg.cn/wLynX
python--4函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、递归练习 http://t.csdnimg.cn/h9x17
python---3--sort、lambdalen(list1)、sorted_numbers = sorted(numbers)、list.sort()
python--2作业66,69,71,84;85;数据类型:int()float()TrueFalsestr()list()set()dict()tuple()class
python--1作业,注释、输入输出、运算符、运算结果、三目运算符、关系表达、多值交换、偶数、随机数、三目运算、if、elif、else、while、for、break、contince、pass http://t.csdnimg.cn/0KDeU
计算机网络第1章:计算机网络的概念、组成与功能;计算机网络的分类、标准化工作及相关组织
计算机网络第一章:性能指标:带宽、时延、时延带宽积、RTT、吞吐量、速率、信道利用率
计算机网络体系结构——PDU、SDU、PCI、协议、访问、接口、SAP
计算机网络分层结构——OSI/ISO、TCP/IP http://t.csdnimg.cn/hLrqY
2章选择、解答 http://t.csdnimg.cn/ONrER
通信基本概念:数据、信号、码元、信源、信道、信宿、速率、波特、带宽 http://t.csdnimg.cn/TKnyM
数据、信号、码元、信源、信道、信宿、速率、波特、带宽-通信基本概念
HCIA——30奈奎斯特定理、香农定理 http://t.csdnimg.cn/Yqtch
HCIA——20应用层:C/S、P2P、peer http://t.csdnimg.cn/4i4Og
HCIA——21C/S、P2P、peer的选择
DNS层次域名空间、域名服务器、域名解析的原理 http://t.csdnimg.cn/yeWd6
HCIA——23DNS层次域名空间、域名服务器、域名解析的原理的选择、解答 http://t.csdnimg.cn/RXPNV
HCIA——24FTP 的工作原理、功能、TFTP、控制连接、数据连接
HCIA——25FTP 的工作原理、功能、TFTP、控制连接、数据连接的选择、解答
HCIA——26E-mall、MIME、POP3、IMAP、电子邮件系统的组成结构、电子邮件的发送,接收过程、MIME 与SMTP 的关系 http://t.csdnimg.cn/smTaR
HCIA——27E-mall、MIME;POP3、IMAP的选择,解答 http://t.csdnimg.cn/xnsXP
HCIIA——28HTTP、万维网、HTML;万维网的工作过程;HTTP 的特点——无连接-TCP、无状态-Cookie、非持久连接-非流水线和流水线;HTTP 的报文结构 http://t.csdnimg.cn/cRcxY
- 技术笔记 1遍
- 有错误请指出,作者会及时改正