本文主要是介绍C++ easyX小程序:画五角星,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//本小程序通过调用easyX的moveto、lineto函数画出五角星编写了FiveStar函数,在调用这个函数时setbkcolor、setlinecolor、setfillcolor设置了背景、线及填充颜色,又调用floodfill函数对五角星进行颜色填充。
//代码及注释如下:
#include<iostream>
#include<graphics.h>
#include<math.h>
using namespace std;
void FiveStar(int x,int y,int R) //绘图函数
{
//(x,y)五角星圆心坐标
//R--五角星外接圆半径
//计算五角星各外角顶点坐标
int x1=x+R*cos(3.1415*(90+0*72)/180);
int y1=y-R*sin(3.1415*(90+0*72)/180);
int x2=x+R*cos(3.1415*(90+1*72)/180);
int y2=y-R*sin(3.1415*(90+1*72)/180);
int x3=x+R*cos(3.1415*(90+2*72)/180);
int y3=y-R*sin(3.1415*(90+2*72)/180);
int x4=x+R*cos(3.1415*(90+3*72)/180);
int y4=y-R*sin(3.1415*(90+3*72)/180);
int x5=x+R*cos(3.1415*(90+4*72)/180);
int y5=y-R*sin(3.1415*(90+4*72)/180);
//计算五角星内角内接圆半径
int r=(int)R*0.44;
//计算五角星各内角顶点坐标
int xx1=x+r*cos(3.1415*(90+0*72+36)/180);
int yy1=y-r*sin(3.1415*(90+0*72+36)/180);
int xx2=x+r*cos(3.1415*(90+1*72+36)/180);
int yy2=y-r*sin(3.1415*(90+1*72+36)/180);
int xx3=x+r*cos(3.1415*(90+2*72+36)/180);
int yy3=y-r*sin(3.1415*(90+2*72+36)/180);
int xx4=x+r*cos(3.1415*(90+3*72+36)/180);
int yy4=y-r*sin(3.1415*(90+3*72+36)/180);
int xx5=x+r*cos(3.1415*(90+4*72+36)/180);
int yy5=y-(int)r*sin(3.1415*(90+4*72+36)/180);
//画五角星
moveto(x1, y1);
lineto(xx1, yy1);
lineto(x2, y2);
lineto(xx2, yy2);
lineto(x3, y3);
lineto(xx3,yy3);
lineto(x4, y4);
lineto(xx4,yy4);
lineto(x5, y5);
lineto(xx5,yy5);
lineto(x1, y1);
}
int main()
{
initgraph(640,480); //初始化窗口
setbkcolor(YELLOW); //背景黄色
cleardevice(); //清屏
setlinecolor(RED); //线颜色红色
FiveStar(300,220,150); //调用绘图函数
setfillcolor(RED); //填充色红色
floodfill(300,220,RED,0); //用红色填充
system("pause");
return 0;
}
这篇关于C++ easyX小程序:画五角星的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!