系列文章
①:安装及基本概念
②:EasyX函数-设备相关
③:EasyX函数-颜色模型
④:EasyX函数-图形样式
⑤:EasyX函数-绘图相关〔1〕
⑥:EasyX函数-绘图相关〔2〕
文章目录
前言
作者也是个小白,本【教程】充其量算个学习笔记,若有写的不正确的地方还请指教。
三、EasyX函数 之
设备相关
-
清空设备 – cleardevice()
作用
: 使用当前背景色清空设备。
函数原型
:void cleardevice();
参数
: /
返回值
: / -
关闭窗口 – closegraph()
作用
: 关闭绘图窗口。
函数原型
:void closegraph();
参数
: /
返回值
: / -
获取缩放因子 – getaspectratio()
作用
: 获取当前缩放因子。
函数原型
:void getaspectratio( float *pxasp, float *pyasp );
参数
:-
px
a
s
p
pxasp
p
x
a
s
p
: float*,返回x方向上的缩放因子。 -
py
a
s
p
pyasp
p
y
a
s
p
: float*,返回y方向上的缩放因子。
返回值
: / -
-
重置 – graphdefalts()
作用
:重置视图、当前点、绘图色、背景色、线形、填充样式、字体为默认值。
函数原型
:void graphdefalts();
参数
: /
返回值
: / -
初始化窗口 – initgraph()
作用
:初始化绘图窗口。
函数原型
:HWND initgraph( int width, int height, int flag = NULL );
参数
:-
wi
d
t
h
width
w
i
d
t
h
: 窗口宽度,
in
t
{\rm{int}}
i
n
t
-
he
i
g
h
t
height
h
e
i
g
h
t
: 窗口高度,
in
t
\rm int
i
n
t
-
[可选]
fl
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 );
参数
:
*
xa
s
p
xasp
x
a
s
p
: x 方向上的缩放因子
1
。
*
ya
s
p
yasp
y
a
s
p
: y 方向上的缩放因子
2
。
返回值
: /
注
:如果缩放因子为负,可以实现坐标轴的翻转。例如,执行
setaspectratio(1, -1)
后,可使 y 轴向上为正。 -
裁剪区 – setcliprgn()
作用
:设置当前绘图设备的裁剪区。设置裁剪区后,绘图只有在裁剪区的部分才会显示(但仍然可以通过操作显示缓冲区在裁剪区外绘图)
3
函数原型
:void setcliprgn(HRGN hrgn);
参数
:-
hr
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);
参数
:
*
xx
x
: 原点的横坐标(
物理坐标
,见
①
-<二>-坐标)
*
yy
y
: 原点的纵坐标(
物理坐标
,见
①
-<二>-坐标)
返回值
: /
结语
精力、时间有限,先写到这,下期见!
@HaohaoCppDebuger|寻兰
2021/10/23
—–THE END—–
THANK YOU !