一.先利用graphics函数画出一个1000x800的界面
然后再把物理坐标原点转化为我们熟悉的逻辑坐标原点,翻转y轴,便于我们来计算坐标
相关代码
initgraph(1000, 800); //初始化绘图工具
setorigin(500, 400); // 把物理坐标原点转化为逻辑坐标原点
setaspectratio(1, -1); //目的翻转Y轴,缩放因子为负数时可以实现坐标翻转
//画圆
circle(0, 0, 300);
接下来再画出一个圆,用circle函数画出一个圆心为(0,0),半径为300像素的圆
因为五角星是正五角星,所以作出圆的内接五边形,也是圆周长的5等分点。
通过连接这五个点,从而画出五角星
因为是五等份点,所以每个偏转角的度数都为72°
根据三角函数可以算出每个点的具体位置
以右边的点为A点,逆时针方向得出
A点坐标为(300,0)
B点坐标为((300*cos(72)),300*sin(72) )
C点坐标为((300*cos(144)),300*sin(144) )
D点坐标为((300*cos(216)),300*sin(216) )
E点坐标为((300*cos(288)),300*sin(288) )
然后再把角度转化为弧度
1弧度=(180/π)°角度
1角度=π/180弧度
最后连接五个点的坐标画出五角星
最后上代码
#include<stdio.h>
#include<graphics.h>
#include<math.h>
#define PI 3.1415926
int main()
{
initgraph(1000, 800); //初始化绘图工具
setorigin(500, 400); // 把物理坐标原点转化为逻辑坐标原点
setaspectratio(1, -1); //目的翻转Y轴,缩放因子为负数时可以实现坐标翻转
//画圆
circle(0, 0, 300);
//圆内接正五边形
//画出五角星
line(300, 0, 300 * cos(2.513), 300 * sin(2.513));
line(300,0, 300 * cos(3.769), 300 * sin(3.769));
line(300 * cos(0.4 * PI), 300 * sin(0.4 * PI), 300 * cos(3.769), 300 * sin(3.769));
line(300 * cos(0.4 * PI), 300 * sin(0.4 * PI), 300 * cos(5.026), 300 * sin(5.026));
line(300 * cos(2.513), 300 * sin(2.513), 300 * cos(5.026), 300 * sin(5.026));
getchar(); //阻塞函数,防止闪退
closegraph(); //关闭绘图窗口函数
return 0;
}
运行结果