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;

}

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/7ed2efd650.html