C/C++/EasyX ——入门图形编程(2)

news/2024/10/4 14:22:43/

【说明】这一篇的内容都是很基础的,所以内容会很多,具体现在也不知道要写多少,先写下去吧,新手小白们都不用担心,这个内容不会很难,因为我也是从一无所知过来的,很好入门的,(^v^)加油吧。还有这个软件的应用是需要安装两个软件的,友友们可以自己去搜索一下,EasyX的下载及vc(这个版本有好几种,都是可以的,这里我用的是2022版的,还是不太会安装的可以先等等,我先把这篇文章写完,之后就会专门出一篇软件的下载的)

还没安装或者安装有问题的,不用着急,可以先看一下这篇文章,有了大概的了解之后可以去 B 站那里找找相关讲解,都还是很可以的。

-------------------------------------------------我是分割线-----------------------------------------------------------------

目录

一:EasyX的介绍

二:EasyX的函数

1.EasyX 的窗口函数

2.EasyX 的绘图函数

1) 从形状来分,常用的可以分为8种

2) 从填充样式可以分为三种—无填充、有边框填充、无边框。

3) 其他相关函数

三:颜色介绍

四:作图示例

1.三种圆的填充图形

2.改变线条颜色及样式、大小

【说明】这里的第十三行代码中的设置线条样式,不知道都有什么样式,可以右键,点击转到定义。

3.改变窗口的颜色

【注意】改变背景颜色时需要两个步骤,需要先设置背景颜色,再清屏,否则是没用的。

五:总结


一:EasyX的介绍

EasyX 是针对 C++ 的图形库,可以帮助 C++/C 初学者快速上手图形和游戏编程,就比如可以利用它画出相关的几何图形,也可以编写贪吃蛇、五子棋、俄罗斯方块……的小游戏。至于它的原理,它是基于 Windows 图形编程,将 Windows下的复杂程序过程进行封装,将 Windows下的编程过程隐藏,给用户提供一个简单熟悉的接口。用户对于图形库中函数的调用,最终都会由  Windows 的底层 API 实现。这一段了解一下就行了) 安装成功后包含头文件 graphics.h 即可开始快乐学习了哦。

二:EasyX的函数

注意,EasyX坐标—坐标默认的原点在窗口的左上角,X轴向右为正,Y轴向下为正,度量单位是像素点。

1.EasyX 的窗口函数

这些都是很有用的。在这个地方就不写代码将这些函数单一地用进去了,后面绘图的时候再统一给出代码吧。会有很详细的注释的。

initgraph(int width,int height,int flag=NULL)用于houmianhuitudeshihou初始化绘图窗口(创建窗口),width指窗口的宽度,height指窗口的宽度,flag窗口的样式,默认为NULL
closegraph()关闭绘图窗口
cleardevice();清空绘图设备

2.EasyX 的绘图函数

1) 从形状来分,常用的可以分为8种

circle画圆
ellipse画椭圆
pie画扇形
polygon画多边形
rectangle画矩形
roundrect画圆角矩阵
line画线
putpixel画点

2) 从填充样式可以分为三种—无填充、有边框填充、无边框。

以画圆为例:circle(无填充)、fillcircle(有边框填充)、solidcircle(无边框填充)

3) 其他相关函数

设置填充颜色:setfillcolor(颜色)

设置线条颜色:setlinecolor(颜色)

设置线条样式:setlinestyle(高度,宽度,字体)

等等,还有很多。

三:颜色介绍

光的三原色是—红、绿、蓝,EasyX 的颜色可以直接在相应的函数括号中用英文表示,比如—“YELLOW”,但可以表示的很少,要表示更加复杂的颜色,就要用 RGB 宏合成颜色,实际上它所合成的颜色就是一个十六进制的整数。 RGB(红色部分,绿色部分,蓝色部分);每个颜色的值都是从 0~255。这个怎么说呢,可以看看下面的图,相信友友们都很熟悉的。

这个之前大家都应该有所眼熟。数值越大,对应的颜色越浅。

四:作图示例

【代码如下】

1.三种圆的填充图形

#include <stdio.h>
#include <graphics.h>
int main()
{//创建一个窗口,窗口长640,宽480initgraph(640,480);//设置填充颜色,注意,必须要在绘图函数circle()之前,否则,不起作用setfillcolor(YELLOW);//画圆,以(50,50)坐标为原点,最后一个是参数,半径为50,下面是圆的三种填充样式circle(50, 50, 50);fillcircle(50, 150, 50);solidcircle(50, 250, 50);getchar();//不写这个会闪退//关闭窗口closegraph();
//这个写不写无所谓,问题不大return 0;
}

上面我们可以看到,三种圆形填充样式,但可能不太清晰,第二个外面的白线不显,那我们设置一下线条颜色及及粗细,是否可以呢?

2.改变线条颜色及样式、大小

#include <stdio.h>
#include <graphics.h>
int main()
{//创建一个窗口,窗口长640,宽480initgraph(640,480);//设置填充颜色,注意,必须要在绘图函数circle()之前,否则,不起作用setfillcolor(YELLOW);//设置线条颜色为红色,线条样式为实线,5个像素点(粗细程度)setlinecolor(RED);setlinestyle(PS_SOLID, 5);//画圆,以(50,50)坐标为原点,最后一个是参数,半径为50,下面是圆的三种填充样式circle(50, 50, 50);fillcircle(50, 150, 50);solidcircle(50, 250, 50);getchar();//不写这个会闪退//关闭窗口closegraph();
//这个写不写无所谓,问题不大return 0;
}

这样,就很容易看出来了。但是,这个背景不太舒服,你想要去掉或者改变一下颜色,该怎么做呢,这就用到了之前的窗口函数。

【说明】这里的第十三行代码中的设置线条样式,不知道都有什么样式,可以右键,点击转到定义。

可以看到下面的,找到你想要的就可以了。

3.改变窗口的颜色

#include <stdio.h>
#include <graphics.h>
int main()
{//创建一个窗口,窗口长640,宽480initgraph(640, 480);//设置背景颜色,两个步骤不能少且顺序不能改变,否则没效果setbkcolor(WHITE);//first stepcleardevice();//second step//设置填充颜色,注意,必须要在绘图函数circle()之前,否则,不起作用setfillcolor(YELLOW);//设置线条颜色为红色,线条样式为实线,5个像素点(粗细程度)setlinecolor(RED);setlinestyle(PS_SOLID, 5);//画圆,以(50,50)坐标为原点,最后一个是参数,半径为50,下面是圆的三种填充样式circle(50, 50, 50);fillcircle(50, 150, 50);solidcircle(50, 250, 50);getchar();//不写这个会闪退//关闭窗口closegraph(); 
//这个写不写无所谓,问题不大return 0;
}

【注意】改变背景颜色时需要两个步骤,需要先设置背景颜色,再清屏,否则是没用的。

五:总结

不想写了,感觉有点长,虽然都是很简单的点,但是太长了,友友们肯定也会疲倦,而且翻的有点累手,那就先写到这,这一篇就讲关于做出简单图形的相关知识吧,下一篇写如何在窗口上绘制文字吧,一步一步慢慢来。友友给个赞吧。(>y<)(⌒▽⌒)(^v^)


http://www.ppmy.cn/news/1534459.html

相关文章

确保接口安全:六大方案有效解决幂等性问题

文章目录 六大方案解决接口幂等问题什么是接口幂等&#xff1f;天然幂等不做幂等会怎么样&#xff1f; 解决方案1&#xff09;insert前先select2&#xff09;使用唯一索引3&#xff09;去重表加悲观锁4&#xff09;加乐观锁之版本号机制5&#xff09;使用 Redisson 分布式锁6&a…

Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录

概述 公司有个项目使用到Grafana作为监控界面,因为项目方的环境极其复杂,仅物理隔离的环境就有三四个,而且每个都得部署项目,今天在某个环境测试,查看界面遇到一个比较奇怪的Grafana问题,后面针对该问题进行跟踪分析并解决,故而博文记录,用于备忘。 问题 登录项目We…

30min 的OpenCV learning Note

1.安装python和pycharm与环境搭配 打开Windows终端&#xff1a;&#xff08;winR&#xff09;&#xff08;一般使用清华镜像网站安装库比较快&#xff09; pip install opencv-contrib-python -i https://pypi.mirrors.ustc.edu.cn/simple 或者 python -m pip install open…

geodatatool(地图资源下载工具)3.8更新

geodatatool&#xff08;地图资源下载工具&#xff09;3.8&#xff08;新&#xff09;修复更新&#xff0c;修复更新包括&#xff1a; 1.高德POI数据按行政区划下载功能完善。 2.修正高德POI数据类型重复问题。 3.对高德KEY数据访问量超过最大限制时&#xff0c;提示错误并终止…

python的内存管理机制

python的内存管理机制主要分为三个部分&#xff1a;引用计数、垃圾回收和内存池机制。 引用计数机制&#xff1a; python通过维护每个对象的引用计数来跟踪内存中的对象。当对象被创建时就会有一个引用计数&#xff0c;当对象不再被使用时&#xff0c;引用计数为0&#xff0c…

win系统网络重置

重置网络命令&#xff1a;netsh winsock reset 输入winR 调用运行窗口&#xff0c;回车 输入重置网络命令&#xff1a;netsh winsock reset 注意空格

3D Gaussian Splatting 学习笔记

目录 突破3DGS泛化和实用壁垒&#xff01;GS-Net&#xff1a;首个具有跨场景泛化能力的即插即用3DGS模块 升级版 SGD 一问读懂3D Gaussian Splatting 3DGS高斯泼溅技术 系统首先对 SfM 点云进行初始化 代码概要 突破3DGS泛化和实用壁垒&#xff01;GS-Net&#xff1a;首个…

Android-Handle消息传递和线程通信

本文为作者学习笔记&#xff0c;如有误&#xff0c;请各位大佬指点 目录 一、同步异步 二、Java多线程通信 三、Handler是什么 四、Handler相关的类 五、Handler常用方法 1. 发送消息 2. 接收处理消息 3. 切换线程 六、使用Handler 使用Handler更新UI 使用Handler延…