C++游戏梦 | EasyX详解 | ②:EasyX函数-设备相关

  • Post author:
  • Post category:其他





<<<上一篇—①:安装及基本概念



系列文章


①:安装及基本概念



②:EasyX函数-设备相关



③:EasyX函数-颜色模型



④:EasyX函数-图形样式



⑤:EasyX函数-绘图相关〔1〕



⑥:EasyX函数-绘图相关〔2〕





前言

作者也是个小白,本【教程】充其量算个学习笔记,若有写的不正确的地方还请指教。



三、EasyX函数 之

设备相关



  • 清空设备 – cleardevice()


    作用

    : 使用当前背景色清空设备。


    函数原型

    :

    void cleardevice();
    


    参数

    : /


    返回值

    : /



  • 关闭窗口 – closegraph()


    作用

    : 关闭绘图窗口。


    函数原型

    :

    void closegraph();
    


    参数

    : /


    返回值

    : /



  • 获取缩放因子 – getaspectratio()


    作用

    : 获取当前缩放因子。


    函数原型

    :

    void getaspectratio(
    float *pxasp,
    float *pyasp
    );
    


    参数

    :




    • p

      x

      a

      s

      p

      pxasp






      p


      x


      a


      s


      p





      : float*,返回x方向上的缩放因子。




    • p

      y

      a

      s

      p

      pyasp






      p


      y


      a


      s


      p





      : float*,返回y方向上的缩放因子。


    返回值

    : /



  • 重置 – graphdefalts()


    作用

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


    函数原型

    :

    void graphdefalts();
    


    参数

    : /


    返回值

    : /



  • 初始化窗口 – initgraph()


    作用

    :初始化绘图窗口。


    函数原型

    :

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


    参数

    :




    • w

      i

      d

      t

      h

      width






      w


      i


      d


      t


      h





      : 窗口宽度,



      i

      n

      t

      {\rm{int}}









      i


      n


      t










    • h

      e

      i

      g

      h

      t

      height






      h


      e


      i


      g


      h


      t





      : 窗口高度,



      i

      n

      t

      \rm int







      i


      n


      t





    • [可选]



      f

      l

      a

      g

      flag






      f


      l


      a


      g





      : 窗口样式,可为:

作用
EW_DBLCLKS 在绘图窗口中支持鼠标双击事件。
EW_NOCLOSE 禁用绘图窗口的关闭按钮。
EW_NOMINIMIZE 禁用绘图窗口的最小化按钮。
EW_SHOWCONSOLE 显示控制台窗口。


返回值

:窗口句柄,



H

W

N

D

\rm HWND







H


W


N


D









实例

:

	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






    x


    a


    s


    p





    : x 方向上的缩放因子


    1




    *



    y

    a

    s

    p

    yasp






    y


    a


    s


    p





    : y 方向上的缩放因子


    2





    返回值

    : /




    :如果缩放因子为负,可以实现坐标轴的翻转。例如,执行

    setaspectratio(1, -1)

    后,可使 y 轴向上为正。



  • 裁剪区 – setcliprgn()


    作用

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


    3




    函数原型

    :

    void setcliprgn(HRGN hrgn);
    


    参数

    :




    • h

      r

      g

      n

      hrgn






      h


      r


      g


      n





      : 裁剪区区域句柄,若值为

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


  • 设置坐标原点 – 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






    1


    0


    0













    x


    a


    s


    p







    ↩︎

  2. 例如绘制高度为 100 的矩形,实际的绘制高度为



    100

    y

    a

    s

    p

    100 \cdot yasp






    1


    0


    0













    y


    a


    s


    p







    ↩︎

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


    ↩︎



版权声明:本文为HaohaoCppDebuger原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。