easyx的基本使用(万字解析)
创始人
2024-05-23 16:52:33
0

easyx的基本使用

  • 一.基本框架
    • 1.创建文件
    • 2.创建窗体-initgraph,closegraph,getchar
  • 二.简单的绘制
    • 1.圆形-circle
    • 2.坐标系统-setorigin,setaspectratio
  • 三.简单图形
    • 1.绘制点-putpixel
    • 2.简单的直线-line
    • 3.矩形-rectangle
    • 4.椭圆-ellipse
    • 5.圆角矩形-roundrect
    • 6.扇形-pie
    • 7.圆弧-arc
  • 四.多边形
    • 1.绘制封闭图形-polygon
    • 2.绘制非封闭图形-polyline
  • 五.图形的样式
    • 1.描边
      • 1.边的颜色-setlinecolor
      • 2.边的样式-setlinestyle
      • 3.端点的样式-setlinestyle
      • 4.连接样式-setlinestyle
    • 2.填充-setfillcolor
    • 3.描边加填充-fill
    • 4.背景色更改-setbkcolor,cleardevice
  • 六.一个训练-哆啦A梦

在这里插入图片描述

easyx是一款使用成本极低的图形库插件,可以快速通过c语言绘制出图形 安装官网。需要的图形几乎只需要通过查阅函数就可以实现。ps:easyx只支持VS系列。

一.基本框架

1.创建文件

使用easyx创建项目选择控制台。

在这里插入图片描述

创建源文件时使用cpp为后缀,因为cpp为c++后缀。easyx内部是由c++语法实现的,但是不用担心因为easyx使用的是一系列既可由c++实现又可由c实现的函数。

在这里插入图片描述

2.创建窗体-initgraph,closegraph,getchar

平常在打印c程序时会出现一个黑色的控制台,而在使用easyx时我们创建一个可大可小的窗体以便我们调整。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二.简单的绘制

1.圆形-circle

在这里插入图片描述

在这里插入图片描述

可以看到确实画出来一个圆,但园的位置在最左上角。这就是easyx的坐标系统造成的啦。

2.坐标系统-setorigin,setaspectratio

我们一般意义上的直角坐标系原点位于中心,并且y轴的正方向向上。

在这里插入图片描述

但在easyx里有所不同的是,easyx有两种坐标分别是:逻辑坐标和物理坐标。

在这里插入图片描述

表面上看来物理坐标和逻辑坐标是没什么区别的实际上有着很大区别。物理坐标是用于描述窗体的坐标,不能被修改;而逻辑坐标是用于描述绘图的坐标,可以被修改。

接下来我们把逻辑坐标移到窗体中心。

在这里插入图片描述

在这里插入图片描述

这里的坐标与我们常用的坐标还是有所差异,因为y轴是向下的,所以我们需要将y轴向上翻转。

在这里插入图片描述

如果缩放因子为负则可实现该坐标轴的翻转。

在这里插入图片描述

三.简单图形

1.绘制点-putpixel

在这里插入图片描述

为了使现象更明显,随机画1000个白色的点。其中使用到随机数可以看看这篇设置随机数

在这里插入图片描述

2.简单的直线-line

`1

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.矩形-rectangle

在这里插入图片描述

从传参可以看出实际上就是矩形左上顶点和右下顶点。

在这里插入图片描述

4.椭圆-ellipse

在这里插入图片描述

从传参可以看出,其实就是传一个矩形,再通过矩形内切一个椭圆(具体怎么内切由该函数实现)。

在这里插入图片描述

5.圆角矩形-roundrect

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.扇形-pie

在这里插入图片描述

确定一个扇形需要先确定一个椭圆,再确定起始角度和终止角度就可以了。

在这里插入图片描述

在这里插入图片描述

7.圆弧-arc

在这里插入图片描述

参数与扇形是一样的,区别在于圆弧少了两条线。具体怎么缺少由arc函数实现。

在这里插入图片描述

四.多边形

1.绘制封闭图形-polygon

在这里插入图片描述

这里的piont是easyx自带的一个结构体,组成如下:

在这里插入图片描述

例子三角形

在这里插入图片描述

同理,想要绘制出梯形,五边形,六边形…只需要将它们的顶点合成一个数组,再传入polygon即可。

2.绘制非封闭图形-polyline

polygon会将所有线段连接起来,例如我们想用polygon绘制字母W是办不到的。

在这里插入图片描述

polyline与polygon的参数是一致的,唯一的区别是polyline不会连接首尾两个端点。

在这里插入图片描述

在这里插入图片描述

五.图形的样式

1.描边

1.边的颜色-setlinecolor

在这里插入图片描述

这是一个简单的圆形,我们仔细观察可以发现是由白色的线条构成。我们将白色的线条称为描边,描边默认是白色的。我们怎样修改边的颜色呢?

在这里插入图片描述

在这里插入图片描述

当然仅仅有颜色是不够的,我们还需要边的样式。

2.边的样式-setlinestyle

在这里插入图片描述

这里有4个参数,但后两个我们可以默认不传参。我们来看一下style。

在这里插入图片描述

easyx中定义了7种不同的常量代表不同的样式(最后一种是自定义)。

在这里插入图片描述

下面演示虚线样式。

在这里插入图片描述

可以看到确实成功了但线条太细了,我们想要更粗一些。这时得用到第二个参数了。

在这里插入图片描述

3.端点的样式-setlinestyle

关于端点的样式,easyx里有三种选择。

在这里插入图片描述

下面演示圆端点。

在这里插入图片描述

4.连接样式-setlinestyle

easyx里有三种连接样式。

在这里插入图片描述

下面以斜面连接为例。

在这里插入图片描述

2.填充-setfillcolor

填充与绘制图形的函数几乎是一样的,总是在前面加上solid。例如圆的函数是circle,那么它的填充函数就是solidcircle。

在这里插入图片描述

可以看到的确进行了填充,但填充的颜色是默认的白色,如果想要改变颜色则需要下面函数。

在这里插入图片描述

在这里插入图片描述

3.描边加填充-fill

只需要在描边函数前面加上fill就可以了。例如,一个简单的圆形描边是circle函数,既使用描边又使用填充的圆就是fillcircle。

以下一个圆形的描边颜色是红色虚线,填充颜色为黄色

在这里插入图片描述

4.背景色更改-setbkcolor,cleardevice

默认背景颜色是黑色,想要更改也很简单。就像粉刷墙面一样,setbkcolor就是让你拥有一个特定颜色的刷子。而cleardevice就相当于用这把刷子粉刷墙面。所以两个函数需要一起使用才能达到目的。

在这里插入图片描述

六.一个训练-哆啦A梦

#include
#include
#define PI 3.14
int main()
{initgraph(1024, 1024);setbkcolor(WHITE);cleardevice();setlinecolor(BLACK);setlinestyle(PS_SOLID, 10);setfillcolor(BLUE);fillellipse(118, 125, 990, 931);//蓝色头部setfillcolor(WHITE);fillellipse(189, 271, 919, 931);//白色脸部fillellipse(375, 170, 555, 420);fillellipse(555, 170, 735, 420);//眼框setfillcolor(BLACK);solidcircle(484, 333, 25);solidcircle(617, 333, 25);//瞳孔setfillcolor(WHITE);solidcircle(484, 333, 10);solidcircle(617, 333, 10);//眼部高光setfillcolor(RED);fillcircle(554, 420, 35);line(554, 460, 554, 828);//鼻子和竖线arc(320, 510, 789, 827, PI, 2 * PI);//嘴吧line(125, 313, 296, 410);line(83, 444, 270, 474);line(83, 595, 262, 527);line(819, 414, 990, 320);line(845, 478, 1029, 448);line(853, 542, 1029, 660);//胡须getchar();closegraph();return 0;
}

在这里插入图片描述

ps:以上资料来源于c语言小游戏实战。

在这里插入图片描述

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...