EasyX绘制多边形

简介: EasyX绘制多边形

引言:

在Easyx中,专门给了一个函数绘制多边形——polygon函数

一、打印较简单的多边形

像长方形、正方形、三角形、梯形这些多边形较容易打印,因为他们的顶点坐标较容易求出

比如三角形

#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
POINT points[] = { {0,200},{200,-200},{-200,-200} };//声明POINT结构数组,使用三角形顶点初始化
polygon(points, 3);
//专门打印多边形的函数|先将上面定义数组首元素的指针传给polygon函数的第一个参数,第二个参数指明数组中的元素数量
getchar();
closegraph();
return 0;
}

输出结果

image.png

二、较难打印的多边形

这一类多边形因为顶点坐标较难算出,需要用到一些数学知识。

举个栗子:打印正五边形

#include<easyx.h>
#include<stdio.h>
#include<math.h>//用到三角函数sin和cos,需要引用数学类头文件
#define PI 3.14//需要使用弧度制,因此需要定义PI
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);  
double theta = PI / 2;
double delta = 2 * PI / 5;
int r = 200;
POINT points[5];//存储五边形的顶点
for (int i = 0; i < 5; i++)
  {
points[i].x = cos(theta + i * delta) * r;
points[i].y = sin(theta + i * delta) * r;
  }
//通过三角函数的方式计算五个顶点的坐标
polygon(points, 5);
getchar();
closegraph();
return 0;
}

输出结果:

image.png

三、polygon函数扩展

polygon函数不仅可以打印规则正多边形,不规则图形也能打印。

只需要将各个顶点传入polygon函数,就能将各个顶点依次相连,组成一个封闭的图形。

知道顶点坐标,一切都好说!

四、polygon函数和polyline函数对比

这两个函数基本一致,唯一区别在于前者绘制封闭图形,也就是会连接首尾两个顶点形成封闭图形,polyline就不会,因此形成不封闭图形。

相关文章
|
JSON 安全 IDE
基于ESP8266网络天气时钟的OLED显示
【8月更文挑战第25天】基于ESP8266的网络天气时钟通过OLED显示屏提供直观的时间与天气信息。硬件包括ESP8266开发板、OLED显示屏及其他元件。软件实现涉及Wi-Fi连接、天气API数据获取、NTP时间同步及OLED显示控制。显示内容设计包括清晰的时间格式与详细的天气描述,支持图标展示。项目支持自动更新机制、低功耗模式,并可扩展闹钟等功能。开发者需根据具体环境调整优化,确保系统稳定可靠。
521 0
|
5月前
|
存储 机器学习/深度学习 数据可视化
结合多模态RAG和异步调用实现大模型内容
文章探讨了如何利用多模态大模型和工程优化手段提升物流理赔业务效率。核心方案包括:通过多模态RAG技术实现图片查重,结合异步调用方法优化货损识别功能。
353 36
结合多模态RAG和异步调用实现大模型内容
Ninja is required to load C++ extensions | 问题解决
Ninja is required to load C++ extensions | 问题解决
|
iOS开发 MacOS
Mac用户无权限修改/usr/bin目录
对于Mac OS X 10.11 El Capitan用户,由于系统启用了SIP(System Integrity Protection), 导致root用户也没有权限修改/usr/bin目录。
2537 0
|
8月前
|
人工智能 数据可视化 数据处理
2025低代码前瞻:平台赋能的无限可能
在数字化转型加速的背景下,低代码平台正成为企业不可或缺的工具。展望2025年,低代码技术将通过可视化开发、核心引擎升级、模型驱动、增强数据处理、AI融合、丰富插件生态、开放架构及强化企业功能,全面提升开发效率与灵活性。本文深入解析这些趋势,展示低代码如何赋能企业,实现更高效、智能的应用构建与管理。
|
10月前
|
关系型数据库 MySQL 索引
MySQL的group by与count(), *字段使用问题
正确使用 `GROUP BY`和 `COUNT()`函数是进行数据聚合查询的基础。通过理解它们的用法和常见问题,可以有效避免查询错误和性能问题。无论是在单列分组、多列分组还是结合其他聚合函数的场景中,掌握这些技巧和注意事项都能大大提升数据查询和分析的效率。
929 0
|
弹性计算
阿里云服务器公网IP地址在哪查看?
阿里云服务器公网IP地址在哪查看?
798 0
|
JSON API Swift
打造你的首个iOS天气预报应用
【8月更文挑战第31天】在这篇文章中,我们将一起探索如何从零开始构建一个iOS天气预报应用。我们将通过简单的步骤和示例代码,引导你了解创建这样一个应用所需的基本概念和技术。无论你是编程新手还是希望扩展你的移动开发技能,这篇文章都将为你提供价值。让我们一起潜入iOS开发的海洋,启航吧!
|
消息中间件 存储 监控
Java一分钟之-ActiveMQ:消息中间件
【6月更文挑战第11天】Apache ActiveMQ是广泛使用的开源消息中间件,支持JMS和多种消息协议。本文介绍了ActiveMQ的基础知识,包括消息队列和主题模型,以及持久化和高可用性配置。同时,提出了三个常见问题:配置不当、消息堆积和网络错误,并给出了相应的解决策略。通过Java示例代码展示了如何使用ActiveMQ发送和接收消息。正确配置、管理消息处理和持续监控是确保ActiveMQ高效运行的关键。
299 2