easyx的基本使用(万字解析)

news2024/11/28 6:51:28

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<stdio.h>
#include<easyx.h>
#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语言小游戏实战。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

目标检测回归损失函数 IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU损失函数分析

目标检测回归损失函数 IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU损失函数分析 一、IOU Loss 2016文章《UnitBox: An Advanced Object Detection Network》中提出了IOU Loss将4个点构成的box看成一个整体做回归。 函数特性 IOU Loss的定义是先求出预测框和真实框…

UML的分类

一、UML2.0的正式图型 UML标准术语&#xff1a;UML标准术语_pingcode的博客-CSDN博客 英文名中文术语目的联系Class Diagram类图类、特征与关系UML1.x中有Component Diagram构件图构件的结构和连接UML1.x中有Composite Structure Diagram组合结构图类的运行时刻分解UML2.0的新…

前端——http的三次握手四次挥手

首先要知道在客户端与服务器端进行一个 http 请求的发送和返回的过程当中&#xff0c;我们需要创建一个 TCP 连接&#xff08;TCP connection&#xff09;&#xff1b;因为 http 只存在请求和响应&#xff0c;不存在连接这个概念的&#xff1b;请求和响应都是数据包&#xff0c…

牛客网 HJ56 完全数计算

前言&#xff1a;内容包括四大模块&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 描述 完全数&#xff08;Perfect number&#xff09;&#xff0c;又称完美数或完备数&#xff0c;是一些特殊的自然数。 它所有的真因子…

sed和awk

文章目录1、sed的简单介绍2、sed的使用方法2.1 命令行格式2.2 案例2.3 sed结合正则使用2.4 脚本格式3、awk的简单介绍4、awk的使用方法4.1 命令行模式4.2 脚本模式5、awk内部相关变量5.1 案例6、awk工作原理7、awk进阶使用8、awk脚本编程8.1 案例1、sed的简单介绍 sed是流编辑…

【计算机网络】Linux环境中的网络套接字编程

文章目录前言一、预备知识理解源IP地址和目的IP地址认识端口号认识UDP协议和TCP协议了解网络字节序二、socket 套接字socket 常见APIsockaddr 和 sockaddr_in三、UDP Socket编程封装UdpSocket实现UDP通用服务器实现英译汉服务器实现UDP通用客户端实现英译汉客户端四、地址转换函…

一文详解Yolov5——基于Yolov5的火灾检测系统

✨原创不易&#xff0c;还希望各位大佬支持一下\textcolor{blue}{原创不易&#xff0c;还希望各位大佬支持一下}原创不易&#xff0c;还希望各位大佬支持一下 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01;\textcolor{green}{点赞&#xff0c;你的认可是…

SAP ERP系统实施隐式增强中“声明“和“代码“的区别和用途介绍

SAP ERP系统在实施隐式增强的时候会跳出一个增强模式选择“声明”或者“代码”,这步骤应该如何选择对于刚接触这类增强的开发人员通常会感到疑惑&#xff0c;不知道应该选择哪个&#xff08;如下图)。 点击“信息”可以看到官方的英文的解释如下&#xff1a; 这两个选项有什…

通达信收费接口查询可申购新股c++源码分享

有很多股民在做股票交易时为了实现盈利会借助第三三方炒股工具帮助自己&#xff0c;那么通达信收费接口就是人们常用到的&#xff0c;今天小编来分享一下通达信收费接口查询可申购新股c源码&#xff1a; std::cout << " 查询可申购新股: category 12 \n"; c…

maven的学习与理解之 maven的下载与配置文件的修改

maven的学习之maven的下载与配置文件的修改 maven的下载 maven的下载地址&#xff1a; <http://us.mirrors.quenda.co/apache/maven/maven-3/3.5.4/binaries/maven的安装 zip文件下载之后 解压到没有中文的路径下 这个路径后面maven项目使用频繁 建议路径简单…

电商销量查询:鲸参谋2023年1月平板电视品牌销售数据

根据鲸参谋平台的电商数据显示&#xff0c;1月份在京东平台上各类大家电的销售中&#xff0c;平板电视销售量共计210万件左右&#xff0c;总销售量排名第一&#xff0c;环比增长了26.43%&#xff0c;领先于洗衣机、冰箱、冷柜和空调等热销大家电。 ​*数据源于鲸参谋-类目排行分…

C语言--数据的存储1

目录数据类型的介绍类型的意义类型的基本归类整形家族浮点型家族构造类型--自定义类型指针类型空类型整形在内存中的存储大小端大小端如何区分为什么会有大小端判断机器字节序从本章开始&#xff0c;我们将正式进入C语言的进阶学习中。本篇内容我们将学习 数据的存储数据类型的…

Python深度学习实战PyQt5基本控件使用解析

PyQt5 提供了丰富的输入输出控件。本文介绍通过 QtDesigner 工具栏创建常用的基本控件&#xff0c;包括各种按钮控件、文本输入控件和调节输入控件1. PyQt5 控件简介1.1 什么是控件控件也称控件对象&#xff0c;是 Qt用户界面上最基本的组件类型&#xff0c;也是构成用户界面的…

作为研发如何使用Github Api?

文章目录使用步骤账号创建进行开发者相关设置API操作演示Github API好处推荐的Github API&#x1f31f;个人主页: 个人主页 &#x1f6b5;‍♀️个人介绍:每天进步一点点&#xff0c;生活变得好一点点。 &#x1f4cc;作为一位开发&#xff0c;不管是非工作的还是工作中的人士&…

指针的进阶

指针的进阶一级目录二级目录三级目录先来回顾一下&#xff1a;字符指针指针数组数组指针数组指针的定义&数组名vs数组名数组指针的使用数组参数 指针参数一维数组传参二维数组传参一级指针传参二级指针传参函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组笔…

图表控件TeeChart for .NET系列教程六:选择一个系列类型(使用系列)

TeeChart for .NET是优秀的工业4.0 WinForm图表控件&#xff0c;官方独家授权汉化&#xff0c;集功能全面、性能稳定、价格实惠等优势于一体。TeeChart for .NET 中文版还可让您在使用和学习上没有任何语言障碍&#xff0c;至少可以节省30%的开发时间。 TeeChart for .NET最新…

python基于django的自媒体社区交流平台

自媒体社区平台采用python技术,基于django框架,mysql数据库进行开发,实现了以下功能&#xff1a; 本系统主要包括管理员,用户,商家和普通管理员四个角色组成,主要包括以下功能&#xff1a; 1;前台&#xff1a;首页、需求通告、优质案例、帮助中心、意见反馈、个人中心、后台管理…

区块链安全:从web3.0到数字货币

互联网发展的三个阶段 web1.0 静态页面&#xff0c;内容只能供用户去阅读&#xff0c;类似于在网络上读报纸或者看书。 web2.0 动态互联网&#xff0c;实现用户之间的互动&#xff0c;比如twitter&#xff0c;facebook&#xff0c;titok等。 web2.0中厂商用免费或极低的成…

基于UDP/TCP实现客户端服务器的网络通信程序

目录&#xff1a;前言基于UDP实现客户端服务器的网络通信程序基于TCP实现客户端服务器的网络通信程序前言网络编程的核心是Socket API&#xff0c;它是操作系统给应用程序提供的网络编程API&#xff0c;可以认为是socket api是和传输层密切相关的。在传输层里面&#xff0c;提供…

leetcode刷题---递归思想

leetcode刷题---递归思想&#xff09;1.1 递归介绍1.2 基本步骤1.3 代表题目1.3.1 入门题---青蛙跳1.3.2.1 初级题226.翻转二叉树112.路径总和1.3.3 中级题---汉诺塔问题1.3.4 进阶题---细胞分裂1.1 递归介绍 如果在函数中存在着调用函数本身的情况&#xff0c;这种现象就叫递…