没有合适的资源?快使用搜索试试~ 我知道了~
首页C++ EasyX图形库相关函数使用
C++ EasyX图形库相关函数使用
需积分: 50 59 下载量 33 浏览量
更新于2023-03-16
评论 10
收藏 312KB DOC 举报
C++图形库EasyX 相关使用函数的总结,详细有例题,设计如何制作动画,如何响应鼠标键盘等等,也适用课程设计使用
资源详情
资源评论
资源推荐
3 相关技术学习(VC)
3.1C 语言显示方式概述
C 语言有文本和图形两种显示方式,我们编写的控制台程序的默认显示方式为文本显
示方式。常用的 scanf、printf 等库函数均可在文本显示方式下直接使用,但图形显示方式
下,这些函数便无法正常使用,需要用图形方式下的函数。
EasyX 图形库提供了在 Windows 环境下 C 语言的图形显示方式的函数。在 VC 环境下
使用 EasyX 图形库,同学首先需要自行下载并安装。在
中 有完整的
EasyX 的下载、安装以及使用的方法。本章主要包含完成课设的最基本的一些函数的介绍
和使用范例,内容也主要取自 ,仅供同学们参考。
首先给出两个简单例子说明文字显示和图形显示。
1. 文字显示
文本显示顾名思义,就是在屏幕上输出文字,无论是在控制台,还是在绘图窗口中。
以前作业是在控制台输出文字,而课设中更适合在绘图窗口中输出才能达到更好的游戏效
果。我们学习的第一个 C 程序“Hello world就是在控制台以文本方式显示,想必我们已经
很了解这种情况了,所以,在这里仅列举一个在绘图窗口输出文字“Hello world的例子。
例 :
!"
#
初始化绘图窗口
!$%&$%"'
将” (在当前屏幕的当前位置输出
!)*!Hello world""'
发出指令,其意为按任意键继续
!"'
关闭绘图窗口,与对应
!"'
+
这段代码的作用就是在绘图窗口输出“Hello world字符串,输出当前位置是光标位置,
虽然在绘图环境下看不到光标,但它是实际存在的,初始位置在绘图窗口的左上角,所以,
“Hello world显示在了窗口左上角。
1
使用EasyX图形库的时候需要注意,“outtext(_T("Hello world "))中_T为一个宏函数作
用是将ASCII字符串转化成Unicode字符串,Unicode字符串(Unicode和ASCII一样是一种
编码标准)。所以该函数的参数只能是字符串常量,编写课设的时候会造成很多不必要的
麻烦。如果使用的是VS编译系统,可以在右侧解决方案资源管理处选择项目右键属性->配
置属性->常规->项目默认值->字符集改为“使用多字节字符集”便可直接使用ASCII字符串作
为参数。
2. 图形显示
一个图形显示的例子。
例 2:
引入函数的库
,(-.(/0%
,1-23/%
!"
#
设置图形显示方式
!1-2&(-.(&4566"'
画线 四个参数分别为起点横纵坐标 终点横纵坐标
!7%%&7/%&//%&7/%"'
!87%&7%&87%&83%"'
按任意键继续(另一种方法)
!"'
退出图形显示方式
!"'
%'
+
该段代码生成一个宽为 WIDE,高为 HIGH 的绘图窗口,然后画了两条线。最后用
closegraph 来关闭绘图窗口。编译这个代码并运行程序,会看到一个 640x480 的绘图窗口,
其中心画有十字。
3.2 Visual C++ 的图形显示方式使用
使用图形显示方式大致需要经历下列基本过程:
()设置图形显示方式。
(7)定义视口(不是必须的,缺省为屏幕窗口)。
(8)设置当前位置、前景色和背景色。
(/)绘制图形或文字。
2
图形库提供了丰富的图形相关的函数,在例 和例 7 中我们已经开始使用了。
下面用到的函数、对象等都位于相应的头文件之中,安装 以后便可以在源代码中包
含该头文件即可使用这些函数。
3.2.1 设置图形显示方式
1. 进入图形显示方式
使用图形方式之前必须首先设置,进行必要的初始化,如例 1 和例 2 所示。initgraph
函数完成图形方式的初始化。
HWND initgraph( int width, int height, int flag = NULL);
函数用于初始化绘图环境。
参数:width,绘图环境的宽度;Height,绘图环境的高度;flag,绘图环境的样式,默
认为 NULL。可为以下值:
值 含义
49:69;
禁用绘图环境的关闭按钮。
49<-4-<-=
禁用绘图环境的最小化按钮。
;(91:94;96
保留原控制台窗口。
返回值:创建的绘图窗口的句柄。
2. 退出图形显方式
使用函数:!"'
应该和 initgraph 函数成对出现。
3.2.2 定义视口
文字和图形输出需要显示在窗口上,窗口在缺省的时候就是屏幕能够提供的整个矩形
区 域 。 但 是 它 是 可 以 根 据 需 要 指 定 其 大 小 的 。 屏 幕 输 出 区 域 我 们 称 之 为 窗 口
(window),而它在图形系统中的术语是视口( viewport),概念都是显示区域。图
形函数是在视口上操作。
下面给出定义一个视口的方法:
#include<Windows.h>
int left=0,top=0,right=100,bottom=100;
HRGN Area=CreateRectRgn(int left, int top, int right, int bottom);
解析:
(1)其中,HRGN 是一个句柄,位于 Whindows.h 头文件。为了方便理解,可以把它当成
一个指针。(当然它和指针还是有区别的)
(2)CreateRectRgn 函数的原型为:
HRGN CreateRectRgn(int left, int top, int right, int bottom);
3
这个函数把一个以(left,top)为左上角,以(right,bottom)为右下角的矩形区域看做了
一个整体,并返回一个指向它的句柄。在上述代码里,这个句柄被赋给了 Area。之后,便
可以通过 Area 句柄来对这一块区域进行一些统一的操作。创建区域后不再使用时,执行
DeleteObject(HRGN hrgn)函数释放该区域对应的系统资源。
一些相关的函数:
(1)设置当前绘图设备的裁剪区函数:void setcliprgn(HRGN hrgn);
将句柄 hrgn 指向的区域设置为裁剪区域,这样只有在该区域内进行的绘图才有效
果。
(2)取消之前设置的裁剪区函数:setcliprgn(NULL);
(3)清空裁剪区的屏幕内容函数:void clearcliprgn();
(4)用于设置坐标原点函数:void setorigin(int x, int y);
其中,x,y 均是物理坐标。
例:
1
!"
#
!3/%&/0%"'
(>.4?&?7'
?@:>>!%&%&%%&%%"'
?7@:>>!%%&%%&8%%&8%%"'
将!%&%"&!%%,%%)和(%%&%%&8%%&8%%)
所表示的矩形区域设置为一个视口
!$%&$%&7%"'
!7%%&7%%&7%"'
画两个圆
!"'
程序暂停,按任意键继续
!?"'
将 ? 设置为一个裁剪区
!"'
清空这个区域
!4566"'
取消之前设置的裁剪区
!"'
程序暂停,按任意键继续
!?7"'
4
将 ?7 设置为一个裁剪区
!"'
清空这个区域
!"'
+
运行程序后,会画出两个圆,而连续两次按键盘后,这两个圆会被依次清
除。
此外,windows 有很多创建区域的函数,如:使用 CreateEllipticRgn 创建椭圆
形的区域;使用 CreatePolygonRgn 创建多边形的区域等等。还可以使用 CombineRgn
创建组合区域。用到时查手册或 MSDN。
3.2.3 设置当前位置
在图形显示模式下光标是不显示的,但仍然有一个光标位置,我们把这个位置称为当
前位置。有一些函数的输出是从当前位置开始的,所以需要在程序中控制当前位置。下表
是几个控制当前位置的函数。
函数原形 功能描述
int getwidth(void);
返回当前图形显示方式下的最大的 x 坐标值
int getheight(void);
返回当前图形显示方式下的最大的 y 坐标值
int getx(void);
返回当前位置的 x 坐标
int gety(void);
返回当前位置的 y 坐标
void moveto(int x,int y);
将当前位置设置到(x,y)位置
void moverel(int dx,int dy)
如果当前位置为(x,y),则该函数将当前位置移到
(x+dx,y+dy)
!"
#
!3/%&/0%"'
!-A B"'
开始时光标在(%&%)处
!"'
!$%&$%"'
将光标移动至($%&$%)
!-A B"'
!"'
5
剩余27页未读,继续阅读
Melony_Xin
- 粉丝: 3
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0