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

news2024/11/27 9:52:15

【说明】这一篇的内容都是很基础的,所以内容会很多,具体现在也不知道要写多少,先写下去吧,新手小白们都不用担心,这个内容不会很难,因为我也是从一无所知过来的,很好入门的,(^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,宽480
	initgraph(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,宽480
	initgraph(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,宽480
	initgraph(640, 480);

	//设置背景颜色,两个步骤不能少且顺序不能改变,否则没效果
	setbkcolor(WHITE);//first step
	cleardevice();//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.coloradmin.cn/o/2187161.html

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

相关文章

游览器输入URL并Enter时都发生了什么 面试完美回答

文章目录 前言URL解析DNS解析**浏览器缓存****操作系统缓存**&#xff1a;**路由器缓存**&#xff1a;ISP&#xff08;Internet service provider&#xff09;缓存DNS递归解析IP地址的获取缓存结果 建立TCP连接发送HTTP请求服务器响应TCP链接断开渲染页面解析一 HTML解析过程解…

带你快速了解后端API服务的搭建

前言&#xff1a;写这篇文章的初衷是想分享一下我学习搭建后端API的过程&#xff0c;希望能帮助到和我一样想快速写API接口并部署到服务器上的同学&#x1f61c; 第一步&#xff1a;创建阿里云服务器 1、首先注册一个阿里云账号&#x1f917; 2、出于学习成本考虑&#xff0…

Linux系统,docker容器内查看pikachu源代码

在Linux系统中&#xff0c;要查看Docker容器内的Pikachu的源代码&#xff0c;需要先确保Pikachu的Docker镜像已经运行在系统上。以下是步骤和示例代码&#xff1a; 1、查找Pikachu容器的ID或名称&#xff1a; docker ps -a 2、使用docker exec命令进入运行中的Pikachu容器&am…

Spring MVC的运行流程详解

Spring MVC作为一个广泛使用的框架&#xff0c;提供了灵活且强大的MVC架构支持。尤其在业务系统中&#xff0c;Spring MVC能够有效地处理大量并发请求&#xff0c;提供良好的用户体验。本文将详细讲解Spring MVC的运行流程&#xff0c;以电商交易系统为案例&#xff0c;帮助读者…

不再烦恼!四款AI工具助你轻松打造完美PPT

嘿&#xff0c;各位办公室的小伙伴们&#xff0c;今儿咱们来聊聊那些让咱们工作生活大变样的“智能小伙伴”。作为每天跟PPT打交道的办公室文员&#xff0c;我敢说&#xff0c;自从有了这些神器&#xff0c;我的工作效率简直坐上了火箭&#xff0c;嗖嗖地往上涨&#xff01; 1…

Vue-Lecture1-Notes

渐进式框架 Vue 被称为“渐进式框架”&#xff0c;是因为它允许开发者根据项目的需求逐步引入和使用其功能&#xff0c;而不需要一次性使用整个框架。简单来说&#xff0c;Vue 提供了从简单到复杂的功能层次&#xff0c;可以灵活选择使用。 按需使用&#xff1a;Vue 的核心功能…

CSP-J Day 3 模拟赛补题报告

姓名&#xff1a;王胤皓&#xff0c;校区&#xff1a;和谐校区&#xff0c;考试时间&#xff1a; 2024 2024 2024 年 10 10 10 月 3 3 3 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00&#xff0c;学号&#xff1a; S 07738 S07738 S07738 请关注作者的…

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器&#xff0c;实现“一次构建&#xff0c;到处运行”的目标。然而&#xff0c;不同的操作系统和硬件架构对容器镜像有不同的要求。例如&#xff0c;Linux 和 Windows 系统有不同的文件系统和系统调用&#…

银河麒麟桌面操作系统修改默认Shell为Bash

银河麒麟桌面操作系统修改默认Shell为Bash &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 在银河麒麟桌面操作系统&#xff08;ARM版&#xff09;中&#xff0c;若要将默认Shell从Dash改为Bash&#xff0c;可执行以下步骤&#xff1a; 打开…

谈及医疗和教育真实需求是什么

医疗就是健康&#xff0c;物质基础身体棒&#xff1b; 教育就是心智&#xff0c;心理稳定智慧高。 提示&#xff1a;能让人内心充盈并不断提升自我能力的教育才是高品质的。 全文终结 需求量萎缩对品质端的改变-CSDN博客 与参考资料中的内容以及“贪嗔痴”的关联性进行详细扩…

【C++】vector类的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f525; 所属专栏&#xff1a;C深入学习笔记 &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 本篇文章参考博客&#xff1a;【C】…

HTML5+CSS+JavaScript剪子石头布游戏

HTML5CSSJavaScript剪子石头布游戏 用HTML5CSSJavaScript剪子石头布游戏实现剪子石头布游戏&#xff0c;游戏有成绩计数&#xff0c;人、机输赢情况&#xff0c;及平局情况。 ✂代表剪刀&#xff0c;▉代表石头&#xff0c;▓ 代表布&#xff0c;给出人机双方的出拳情况 游戏…

对于无人机行业技术、人才、实验环境共享,这事你怎么看?

对于无人机行业技术、人才、实验环境共享这一话题&#xff0c;我认为这是一个具有前瞻性和积极意义的趋势&#xff0c;对于推动无人机行业的健康发展具有重要意义。以下是我对此事的详细看法&#xff1a; 一、技术共享促进创新与发展 1. 加快技术创新&#xff1a;技术共享能够…

web前端面试中拍摄的真实js面试题(真图)

web前端面试中拍摄的真实js面试题&#xff08;真图&#xff09; WechatIMG258.jpeg WechatIMG406.jpeg WechatIMG407.jpeg WechatIMG922.jpeg WechatIMG1063.jpeg © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦&#xff01;&#xff01;…

散度旋度拉普拉斯算子速记

哈密顿运算符号想象成一个矢量&#xff08;对x偏导&#xff0c;对y偏导&#xff0c;对z偏导&#xff09; 1、旋度就是这个矢量做点乘 2、散度就是矢量做叉乘 3、拉普拉斯算子就是哈密顿算符点乘哈密顿算符

【自然语言处理】(1) --语言转换方法

文章目录 语言转换方法一、统计语言模型1. 词向量转换2. 统计模型问题 二、神经语言模型1. 词向量化2. 维度灾难3. 解决维度灾难4. embedding词嵌入5. Word2Vec技术5.1 连续词袋模型&#xff08;CBOW&#xff09;5.2 跳字模型&#xff08;Skip-gram&#xff09; 总结 语言转换方…

[论文笔记]SGPT: GPT Sentence Embeddings for Semantic Search

引言 解码器Transformer的规模不断壮大&#xff0c;轻松达到千亿级参数。同时由于该规模&#xff0c;基于提示或微调在各种NLP任务上达到SOTA结果。但目前为止解码器Transformer还无法应用在语义搜索或语句嵌入上。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比…

平台数据分类与聚类实验报告

参考书籍&#xff1a;《数据流挖掘与在线学习算法》 李志杰 1.6.1 实验目的 本书内容以及课程实验主要涉及Java程序设计语言、数据挖掘工具Weka和数据流机器学习平台MOA&#xff0c;因此&#xff0c;需要安装、配置并熟悉实验环境。Java、Weka和MOA都是开源小软件&#xff0…

2024年10月2日历史上的今天大事件早读

1683年10月2日 清朝康熙帝统一台湾 1869年10月2日 印度民族解放运动领袖甘地诞辰 1890年10月2日 中共创始人之一李达诞生 1895年10月2日 天津中西学堂&#xff08;天津大学前身&#xff09;开学 1901年10月2日 郑士良等发起惠州起义 1909年10月2日 京张铁路正式通车 1920…

国外电商系统开发-运维系统功能清单开发

一、最终效果图 二、功能清单 功能 描述 自定义日志绘图 根据Nginx、Apache登录日志文件绘图&#xff0c;绘图数据包括&#xff1a;访问量走势&#xff0c;500错误&#xff0c;200正确百分比等 创建服务器 加入服务器 主机状态自动检查 加入主机到系统后&#xff0c;系统…