EasyX绘制多边形

时间:2023-01-06 08:53:29

引言:

在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;
}

输出结果

EasyX绘制多边形

二、较难打印的多边形

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

举个栗子:打印正五边形

#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;
}

输出结果:

EasyX绘制多边形

三、polygon函数扩展

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

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

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

四、polygon函数和polyline函数对比

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