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
    );
    

    参数 :

    • p x a s p pxasp pxasp : float*,返回x方向上的缩放因子。
    • p y a s p pyasp pyasp : float*,返回y方向上的缩放因子。

    返回值 : /

  • 重置 - graphdefalts()

    作用:重置视图、当前点、绘图色、背景色、线形、填充样式、字体为默认值。
    函数原型:

    void graphdefalts();
    

    参数: /
    返回值: /

  • 初始化窗口 - initgraph()

    作用:初始化绘图窗口。
    函数原型:

    HWND initgraph(
    int width,
    int height,
    int flag = NULL
    );
    

    参数:

    • w i d t h width width : 窗口宽度, i n t {\rm{int}} int
    • h e i g h t height height : 窗口高度, i n t \rm int int
    • [可选] f l a g flag flag : 窗口样式,可为:
作用
EW_DBLCLKS 在绘图窗口中支持鼠标双击事件。
EW_NOCLOSE 禁用绘图窗口的关闭按钮。
EW_NOMINIMIZE 禁用绘图窗口的最小化按钮。
EW_SHOWCONSOLE 显示控制台窗口。

  返回值:窗口句柄, H W N D \rm HWND HWND
  实例:

	initgraph(640,480);//创建一个尺寸为 640x480 的绘图窗口:
	initgraph(640, 480, EW_SHOWCONSOLE);//同时显示控制台窗口
	initgraph(640, 480, EW_SHOWCONSOLE | EW_NOCLOSE);//同时显示控制台窗口,并禁用关闭按钮(使用【|】连接两个flag宏)

  • 设置缩放因子 - setaspectratio()

    作用:设置当前缩放因子。
    函数原型:

    void setaspectratio(
    	float xasp,
    	float yasp
    );
    

    参数:
    * x a s p xasp xasp : x 方向上的缩放因子1
    * y a s p yasp yasp : y 方向上的缩放因子2
    返回值: /
    :如果缩放因子为负,可以实现坐标轴的翻转。例如,执行 setaspectratio(1, -1) 后,可使 y 轴向上为正。

  • 裁剪区 - setcliprgn()

    作用:设置当前绘图设备的裁剪区。设置裁剪区后,绘图只有在裁剪区的部分才会显示(但仍然可以通过操作显示缓冲区在裁剪区外绘图)3
    函数原型:

    void setcliprgn(HRGN hrgn);
    

    参数:

    • h r g n hrgn hrgn : 裁剪区区域句柄,若值为NULL,则取消之前的裁剪区。

    返回值: /

    :可以使用 Windows GDI 函数创建一个区域。例如,创建矩形区域可以使用函数:

    HRGN CreateRectRgn(
    	int left, 
    	int top, 
    	int right, 
    	int bottom
    );
    

    除此之外,还可以使用函数 CreateEllipticRgn 创建椭圆形的区域,使用 CreatePolygonRgn 创建多边形的区域等等。还可以使用 CombineRgn 组合区域,等等。
    注意:创建区域后,如果不再使用,请执行 DeleteObject(HRGN hrgn)以释放该区域对应的系统资源。
    实例:

    #include 
    #include 
    
    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();
    }
    
  • 设置坐标原点 - setorigin()

    作用:设置坐标原点。
    函数原型:

    void setorigin(int x,int y);
    

    参数:
    * x x x : 原点的横坐标(物理坐标,见①-<二>-坐标)
    * y y y : 原点的纵坐标(物理坐标,见①-<二>-坐标)
    返回值: /


结语

精力、时间有限,先写到这,下期见!





@HaohaoCppDebuger|寻兰 
2021/10/23 

-----THE END-----
THANK YOU !

>>>下一篇—③:EasyX函数-颜色模型













  1. 例如绘制宽度为 100 的矩形,实际的绘制宽度为 100 ⋅ x a s p 100 \cdot xasp 100xasp。 ↩︎

  2. 例如绘制高度为 100 的矩形,实际的绘制高度为 100 ⋅ y a s p 100 \cdot yasp 100yasp。 ↩︎

  3. HRGN 是 Windows 定义的表示区域的句柄。将该区域设置为裁剪区后,任何区域外的绘图都将无效(但仍然可以通过操作显示缓冲区在裁剪区外绘图)。——EasyX文档

    ↩︎

你可能感兴趣的:(C++游戏梦,EasyX游戏开发,c++,开发语言,游戏,游戏开发,游戏引擎,1024程序员节)