继续学习Easyx

news2024/12/22 18:50:08

画圆角矩形函数:roundrect,前四个参数是和矩形一样的,表示先画一个矩形,然后就是要画它的圆角了,要怎么画它的圆角?这里使用四个一样的椭圆来将它的四个角画出来,而在这个里面的椭圆不再需要四个参数也就是两个点了,这里每个椭圆的一个点已经确定,我们只要知道另一个点就行了,但是这时候计算机显然用了另一个更为方便的方法,就是当用那四个参数画出了矩形之后,只要知道椭圆的长宽就可以在矩形四个角处画出四个一模一样的椭圆;这样就正好构成了圆角矩形的四个圆角,再经过一些处理,就化画成了圆角矩形了,这里演示一下:

 其实确定这个矩形的长宽和确定他的另一个坐标没什么区别,就是对于使用者来说比较方便;

画完一个矩形后,计算机会在另外四个角重复上述步骤画出一样的,当然这里是我用画图工具画的,当然有点不一样TAT;

 

 

 所以说圆角矩形(英文是roundrectangle)这里函数roundrect是它的简写,有六个参数,分别是确定矩形的两个坐标,还有就是椭圆的长和宽;(这里有一个要注意的,如果这个椭圆的长宽都超过了超过了矩形的,(当然一个超过了还是可以的,别超过太多)画出来的就不是圆角矩形了:);

#include<stdio.h>
#include<easyx.h>
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	roundrect(-100, -200, 100, 200, 50, 50);
	getchar();
	closegraph();

}

 

画扇形函数:要画一个扇形,可以从椭圆里面截取:只要在椭圆里面截取部分就行了,如何选取部分?这时候就要用到角度了,但是在变成里面采用的是弧度制,也就是要用角度之前先要定义一个常数PI;所以这个函数有六个函数:四个参数用来画椭圆,另外两个参数用来表示要截取的的起始弧度和终止弧度;起始位置是从椭圆的最右边开始为零弧度;再设置了x,y分别向右向上为正方向,则就是以朝顺时针为正方向;对于这个函数的记忆:可以想到这个函数画出来很像苹果派的一部分,所以就是pie,意为苹果馅饼哈哈;

#include<stdio.h>
#include<easyx.h>
#define PI 3.14
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	pie(-100, -200, 100, 200, 0, PI/4);
	getchar();
	closegraph();
	return 0;

	
	
}

 

画圆弧函数:

也是画扇形函数一样的参数,可以想象扇形的那个弧度处就是弧形也就是我们要画的:所以它也有6个参数,和扇形的一样;它的函数就是圆弧的英文arc代码如下:

#include<stdio.h>
#include<easyx.h>
#define PI 3.14
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	arc(-100, -200, 100, 200, 0, PI/4);
	getchar();
	closegraph();
	return 0;

	
	
}

画多边形函数:

这个就有一点复杂了:这里涉及一个POINT类型的数组(在easyx.h头文件里面有它的定义,这是一个结构体,里面有两个元素,一个是点的x坐标,另一个是y坐标,这里只要用就行了)polygon有两个参数,一个是POINT型的指针,一个是这个数组的元素数量;然后计算机就会根据这里个点的先后顺序,依次连接它们,构成一个封闭图形;当然,这个函数名也就是它的英语polygon

这里画一个不规则的四边形:

#include<stdio.h>
#include<easyx.h>
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	POINT points[4] = { {100,-200},{0,200},{-10,100},{-100,-200} };
	polygon(points, 4);
	getchar();
	closegraph();
	return 0;
}

如果想要画一个规则的形状,自己算的话很难算,所以这时候可以用一点技巧:比如可以用角度计算加循环,比如要画一个五边形;可以把它画在原点处从它的最高的顶点开始,这时候它的最高顶点在y轴,角度刚好为90度,然后每个点都加了72度,当然,这里不是要画弧,不需要根据计算机的默认角度转向计算,可以按照自己的习惯,因为这里只是计算它的坐标,这里画图更好理解:

所以这里要用到角度来求坐标,要用到sin和cos函数,所以要引用头文件#include<math.h>,这个求坐标涉及到数学知识,可以画图求解;

#include<stdio.h>
#include<easyx.h>
#include<math.h>
#define PI 3.14
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);
	double theta = PI / 2;
	double delta = PI * 2 / 5;
	POINT points[5];
	int r = 100;
	for (int i = 0; i < 5; i++)
	{
		points[i].x =cos(theta+delta*i)*r;
		points[i].y =sin(theta+i*delta)*r;
	}
	polygon(points, 5);
	getchar();
	closegraph();
	return 0;
}

 

 当然有时候我们画图不想画封闭图形,就想留一个口子,这时候就有一个和polygon原理一样但是最后不会将最后一个点和第一个点连起来的函数polyline;如果同样是这份代码,把polygon函数换成polyline(它的英文翻译后的意思是多段线,也有多边形的意思,但是记第一个不容易搞混)函数就会变成这样:

 

到这里今天的介绍也结束了~

难熬的日子总会过去, 不信回头看看, 你都已经在不知不觉中熬过了很多苦难。

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

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

相关文章

MySQL8.0.33主从复制配置记录

目录 1. 下载2. 解压3.重命名4.创建存储数据文件5. 设置用户组并赋权6. 初始化MySQL7.配置文件8. 启动MySQL9. 设置软连接&#xff0c;并重启MySQL10. 登录并更改密码11. 开放远程连接12. 连接工具测试连接MySQL13. 开机自启配置14.从服务器配置15. 主库配置16. 从库配置17. 测…

功率MOS管烧毁,有这些原因

功率MOS管烧毁的原因以及相应的预防措施。在本文中&#xff0c;我将会介绍功率MOS管的基本结构、工作原理&#xff0c;以及可能导致功率MOS管烧毁的原因&#xff0c;并提供相应的解决方案。 1. 功率MOS管的基本结构和工作原理 功率MOS管是一种常用的功率电子器件&#xff0c;…

SpringBoot集成MyBatis-plus

SpringBoot集成MyBatis-plus 一、Mybatis-Plus简介1.简介2.特性3.官网及文档地址 二、入门案例1.开发环境2.创建数据库及表3.创建Springboot项目导入依赖4.配置application.yml5.启动类6.实体类7.添加mapper8.添加UserController9.日志配置 三、CURD1.BaseMapper2.通用Service …

事件主循环

一、事件主循环 1、事件处理主流程 libevent的事件循环主要是通过event_base_loop函数来完成&#xff0c;其主要的操作如下&#xff1a; 1、根据timer-heap中的事件最小超时时间&#xff0c;计算系统I/O demultiplexer的最大等待时间。例如&#xff1a;当底层使用的是Linux提供…

Android系统启动流程--system_server进程的启动流程

紧接上一篇zygote进程的启动流程&#xff0c;上一篇的结尾提到zygote进程中会fock出一个system_server进程&#xff0c;用于启动和管理Android系统中大部分的系统服务&#xff0c;本篇就来分析system_server进程是如何创建并运行的以及它都做了哪些重要的工作。 //文件路径&am…

Show, Attend, and Tell | a PyTorch Tutorial to Image Captioning代码调试(跑通)

Show, Attend, and Tell | a PyTorch Tutorial to Image Captioning代码调试&#xff08;跑通&#xff09; 文章目录 Show, Attend, and Tell | a PyTorch Tutorial to Image Captioning代码调试&#xff08;跑通&#xff09;前言1. 创建、安装所用的包1.1 创建环境&#xff0c…

【深度学习】OCR文本识别

OCR文字识别定义 OCR&#xff08;optical character recognition&#xff09;文字识别是指电子设备&#xff08;例如扫描仪或数码相机&#xff09;检查纸上打印的字符&#xff0c;然后用字符识别方法将形状翻译成计算机文字的过程&#xff1b;即&#xff0c;对文本资料进行扫描…

【数据结构】二叉树经典oj题

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

B. Make Them Equal(Codeforces Round 673 (Div. 1))

传送门 题意&#xff1a; 思路&#xff1a; 首先判断是否能够操作达到目的&#xff1a;即所有的数都相等。 不能达到有两种情况&#xff1a; 1&#xff1a;所有数之和对n取余不等于0 2: 每个ai都是小于i的&#xff0c;例如n5, a[]{0,1,2,3,4}。因为每个数都是小于 i 的&am…

idea中的 debug 中小功能按钮都代表的意思

1.step over 步过----->一行一行的往下走,如果这一行中有方法那么不会进入该方法,直接一行一行往下走,除非你在该方法中打入断点 2.step into 步入—>可以进入方法内部,但是只能进入自己写的方法内部,而不会进入方法的类库中 3.Force step into 强制步入---->可以步…

编译livox ros driver2(ROS2、livox、rviz、ubuntu22.04)

1. 编译Livox-SDK2 官方地址&#xff1a;https://github.com/Livox-SDK/Livox-SDK2 执行一下命令&#xff1a; git clone https://github.com/Livox-SDK/Livox-SDK2.git cd ./Livox-SDK2/ mkdir build cd build cmake .. && make sudo make install 如上就安装完成了…

嵌入式【CPLD】5M570ZT100C5N、5M1270ZF256C5N、5M2210ZF256C5N采用独特的非易失性架构,低成本应用设计。

英特尔MAX V CPLD 采用独特的非易失性架构&#xff0c;提供低功耗片上功能&#xff0c;适用于以边缘为中心的应用。MAX V CPLD系列能够在单位空间中提供大量 I/O 和逻辑。这些设备还使用了低成本绿色封装技术&#xff0c;封装大小只有 20 毫米。 MAX V系列的关键应用包括&…

PCL点云库(1) - 简介与数据类型

目录 1.1 简介 1.2 PCL安装 1.2.1 安装方法 1.2.2 测试程序 1.3 PCL数据类型 1.4 PCL中自定义point类型 1.4.1 增加自定义point的步骤 1.4.2 完整代码 1.1 简介 来源&#xff1a;PCL&#xff08;点云库&#xff09;_百度百科 PCL&#xff08;Point Cloud Library&…

个推打造消息推送专项运营提升方案,数据驱动APP触达效果升级

“数智化运营”能力已成为企业的核心竞争力之一。借助数据和算法&#xff0c;构建完善的数智化运营体系&#xff0c;企业可增强用户洞察和科学决策能力&#xff0c;提高日常运营效率和投入产出比。近半年&#xff0c;个推精准把握行业客户的切实需求&#xff0c;将“数智化运营…

分析型数据库:MPP 数据库的概念、技术架构与未来发展方向

随着企业数据量的增多&#xff0c;为了配合企业的业务分析、商业智能等应用场景&#xff0c;从而驱动数据化的商业决策&#xff0c;分析型数据库诞生了。由于数据分析一般涉及的数据量大&#xff0c;计算复杂&#xff0c;分析型数据库一般都是采用大规模并行计算或者分布式计算…

css的属性选择器

文章目录 属性选择器的原理简单的语法介绍子串值&#xff08;Substring value&#xff09;属性选择器 CSS 属性选择器的最基本用法复杂一点的用法层叠选择多条件复合选择伪正则写法配合 **:not()** 伪类重写行内样式 组合用法&#xff1a;搭配伪元素提升用户体验角标功能属性选…

基于51单片机的智能晾衣架的设计与实现(源码+论文)_kaic

【摘要】随着社会和市场的变化&#xff0c;我国经济的快速发展和房地产行业的快速扩张&#xff0c;使得装修家居行业飞速发展&#xff0c;在行业高速发展的同时&#xff0c;消费者家居智能化要求也在日益发展。随着科学技术的进步和电子技术的发展&#xff0c;单片机作为智能控…

Stable Diffusion一键安装器,只有2.3M

最近AI画图真的是太火了&#xff0c;但是Midjourney收费之后大家就不知道去哪里能用AI画图了&#xff0c; Stable Diffusion很多人听过&#xff0c;但是安装特别麻烦。所以为大家介绍一款软件&#xff0c;一键安装SD。 Stable Diffusion一键安装器_SD一键启动器-Stable Diffus…

LeetCode:459. 重复的子字符串 —【2、KMP算法】

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;459. 重复的子字符串 题目描述&#xff1a;给定一个非空的字符串 s &…

Docker数据管理与Docker镜像的创建

目录 1.管理数据的方式 1.数据卷 2.数据卷容器 3.容器互联&#xff08;使用centos镜像&#xff09; 2.Docker镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile创建 4.Dockerfile案例 总结 1.管理数据的方式 容器中管理数据主要有两种方式&#xff1…