C++游戏梦 | EasyX详解 | ②:EasyX函数-设备相关
<<<上一篇—①:安装及基本概念
系列文章
①:安装及基本概念
②:EasyX函数-设备相关
③:EasyX函数-颜色模型
④:EasyX函数-图形样式
⑤:EasyX函数-绘图相关〔1〕
⑥:EasyX函数-绘图相关〔2〕
文章目录
- 系列文章
- 前言
- 三、EasyX函数 之 设备相关
- 清空设备 - cleardevice()
- 关闭窗口 - closegraph()
- 获取缩放因子 - getaspectratio()
- 重置 - graphdefalts()
- 初始化窗口 - initgraph()
- 设置缩放因子 - setaspectratio()
- 裁剪区 - setcliprgn()
- 设置坐标原点 - setorigin()
- 结语
前言
作者也是个小白,本【教程】充其量算个学习笔记,若有写的不正确的地方还请指教。
三、EasyX函数 之 设备相关
清空设备 - cleardevice()
作用 : 使用当前背景色清空设备。
函数原型 :void cleardevice();
参数 : /
返回值 : /关闭窗口 - closegraph()
作用 : 关闭绘图窗口。
函数原型 :void closegraph();
参数 : /
返回值 : /获取缩放因子 - getaspectratio()
作用 : 获取当前缩放因子。
函数原型 :void getaspectratio( float *pxasp, float *pyasp );
参数 :
- pxasppxasppxasp : float*,返回x方向上的缩放因子。
- pyasppyasppyasp : float*,返回y方向上的缩放因子。
返回值 : /
重置 - graphdefalts()
作用:重置视图、当前点、绘图色、背景色、线形、填充样式、字体为默认值。
函数原型:void graphdefalts();
参数: /
返回值: /初始化窗口 - initgraph()
作用:初始化绘图窗口。
函数原型:HWND initgraph( int width, int height, int flag = NULL );
参数:
- widthwidthwidth : 窗口宽度,int{\rm{int}}int
- heightheightheight : 窗口高度,int\rm intint
- [可选]flagflagflag : 窗口样式,可为:
值 | 作用 |
---|---|
EW_DBLCLKS | 在绘图窗口中支持鼠标双击事件。 |
EW_NOCLOSE | 禁用绘图窗口的关闭按钮。 |
EW_NOMINIMIZE | 禁用绘图窗口的最小化按钮。 |
EW_SHOWCONSOLE | 显示控制台窗口。 |
返回值:窗口句柄,HWND\rm HWNDHWND。
实例:
initgraph(640,480);//创建一个尺寸为 640x480 的绘图窗口:initgraph(640, 480, EW_SHOWCONSOLE);//同时显示控制台窗口initgraph(640, 480, EW_SHOWCONSOLE | EW_NOCLOSE);//同时显示控制台窗口,并禁用关闭按钮(使用【|】连接两个flag宏)
设置缩放因子 - setaspectratio()
作用:设置当前缩放因子。
函数原型:void setaspectratio(float xasp,float yasp );
参数:
* xaspxaspxasp : x 方向上的缩放因子1。
* yaspyaspyasp : y 方向上的缩放因子2。
返回值: /
注:如果缩放因子为负,可以实现坐标轴的翻转。例如,执行setaspectratio(1, -1)
后,可使 y 轴向上为正。裁剪区 - setcliprgn()
作用:设置当前绘图设备的裁剪区。设置裁剪区后,绘图只有在裁剪区的部分才会显示(但仍然可以通过操作显示缓冲区在裁剪区外绘图)3
函数原型:void setcliprgn(HRGN hrgn);
参数:
- hrgnhrgnhrgn : 裁剪区区域句柄,若值为
NULL
,则取消之前的裁剪区。
返回值: /
注:可以使用 Windows GDI 函数创建一个区域。例如,创建矩形区域可以使用函数:
HRGN CreateRectRgn(int left, int top, int right, int bottom );
除此之外,还可以使用函数
CreateEllipticRgn
创建椭圆形的区域,使用CreatePolygonRgn
创建多边形的区域等等。还可以使用CombineRgn
组合区域,等等。
注意:创建区域后,如果不再使用,请执行DeleteObject(HRGN hrgn)
以释放该区域对应的系统资源。
实例:#include <graphics.h> #include <conio.h>int main() {// 初始化绘图窗口 initgraph(640, 480);// 创建一个矩形区域 HRGN rgn = CreateRectRgn(100, 100, 200, 200); // 将该矩形区域设置为裁剪区 setcliprgn(rgn); // 不再使用 rgn,清理 rgn 占用的系统资源 DeleteObject(rgn);// 画圆,受裁剪区影响,只显示出四段圆弧 circle(150, 150, 55);// 取消之前设置的裁剪区 setcliprgn(NULL);// 画圆,不再受裁剪区影响,显示出一个完整的圆 circle(150, 150, 60);// 按任意键退出 _getch(); closegraph(); }
- hrgnhrgnhrgn : 裁剪区区域句柄,若值为
设置坐标原点 - setorigin()
作用:设置坐标原点。
函数原型:void setorigin(int x,int y);
参数:
* xxx : 原点的横坐标(物理坐标,见①-<二>-坐标)
* yyy : 原点的纵坐标(物理坐标,见①-<二>-坐标)
返回值: /
结语
精力、时间有限,先写到这,下期见!
@HaohaoCppDebuger|寻兰
2021/10/23
-----THE END-----
THANK YOU !
>>>下一篇—③:EasyX函数-颜色模型
例如绘制宽度为 100 的矩形,实际的绘制宽度为 100⋅xasp100 \cdot xasp100⋅xasp。 ↩︎
例如绘制高度为 100 的矩形,实际的绘制高度为 100⋅yasp100 \cdot yasp100⋅yasp。 ↩︎
HRGN 是 Windows 定义的表示区域的句柄。将该区域设置为裁剪区后,任何区域外的绘图都将无效(但仍然可以通过操作显示缓冲区在裁剪区外绘图)。——EasyX文档
↩︎
C++游戏梦 | EasyX详解 | ②:EasyX函数-设备相关相关推荐
- 详解softmax函数
详解softmax函数以及相关求导过程 忆臻 PHD Candidate(公众号机器学习算法与自然语言处理) 291 人赞了该文章 这几天学习了一下softmax激活函数,以及它的梯度求导过程,整理一 ...
- python逢7跳过_python实现逢七拍腿小游戏的思路详解
逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...
- html+css+javascript实现小游戏2048(详解,附源代码)
html+css+javascript实现小游戏2048(详解,附源代码) 1.上下左右的移动原理相同,这里只详细说明向上移动的方法 2.这里的上下左右由wasd四个键控制 3-小方块空的意思就是没数 ...
- 初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程
@TOC初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程 [1]什么是windows API Windows API 中文翻译过来就是windows应用程序接口(Applica ...
- python拍七游戏代码_python实现逢七拍腿小游戏的思路详解
逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...
- 关于《J2ME手机游戏开发技术详解》的问题!
这里只是对我书中的bug和没有说明白的技术处说明,对于具体的编程问题,我只是点到为止! 对于3D部分的问题,由于我现在工作重点不在这上面,有些问题的回答我感到吃力,也不太想回答,详情请看我的文章. 我 ...
- 一分钟详解initUndistortRectifyMap函数bug修复方法
本文首发于微信公众号「3D视觉工坊」--一分钟详解initUndistortRectifyMap函数bug修复方法 在上一篇文章OpenCV中initUndistortRectifyMap函数存在bu ...
- python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...
本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...
- 详解虚函数的实现过程之菱形继承(5)
大家看到标题,会不会菱形继承的虚表会不会是重复的呢?祖父类的虚表会不会在子类会不会是两份相同呢?那么我们一起来探索一下吧,冲冲冲!! 首先我们来分析一下: 它一共定义了四个类,分别为CFurnitur ...
最新文章
- 特殊用户邮箱附件大小设置
- vue代码上传服务器后背景图片404解决方法
- Linux-PAM PAM-MySQL的总结
- Arthas 使用的各类方式
- 关于JVM和JIT的一点点
- 《TableStore最佳实践:GEO索引打造店铺搜索系统》
- 计算机应用与基础实践怎么考,自考计算机基础应用科目笔试和实践性考试怎么考...
- python中的urllib库_python3里的Urllib库
- Hadoop之内存问题
- java spring 过滤器_java – 如何在spring-security中的另一个过滤器之前添加过滤器?...
- CSDN创始人蒋涛出席2021 中关村论坛,启动“科创中国”开源创新榜单评选
- building for iOS simulator, but linking in object file built for tvOS, for architecture x86_64
- spring quartz 表达式在线生成器
- A 5G Odyssey :2021北京漫游
- javascript 压缩_14种用于压缩JavaScript的工具
- 计算机的英语怎样写,电脑的英文作文怎么写好呢
- PYQT5(12)-基本窗口控件-窗口绘图类空间
- 物流管理,快递单号查询查快递到哪了
- 前端(五)DOM 文档对象模型
- [PS视频][ps从入门到精通82课][mp4/327M]
热门文章
- 如何实现局域网架设BT服务器
- 表情符号及 \x 与 \u 编码的问题
- 暴雪hash来作整数的hash
- 行业:微软收购动视暴雪遭遇困难
- Docker实践2:用Docker搭建hg-server
- impdp 不兼容_Oracle exp/expdp imp/impdp导入导出数据
- 自定义歌词View的优化(一)
- oracle instr和mysql_Oracle 的INSTR函数MySQL实现
- stm32f429vref怎么接_STM32开发笔记58: STM32F407特殊引脚连接电路
- 优酷持续产出优质内容,日均付费用户同比增长8%