C++ easyX小程序:画五角星

       //本小程序通过调用easyX的moveto、lineto函数画出五角星编写了FiveStar函数,在调用这个函数时setbkcolor、setlinecolor、setfillcolor设置了背景、线及填充颜色,又调用floodfill函数对五角星进行颜色填充。
//代码及注释如下:
#include
#include
#include
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++,小程序)