那几个坐标一定可以用通用公式表示,所以我们就来找出公式,由图和式子可以看出,这几个坐标的最大不同之处就是角度,每个相差2*a,也就是4*PI/5,所以推出公式如下
start5crood[2*n]=(int)(sin(4*n*PI/5)*r+320);
start5crood[2*n+1]=(int)(-1*cos(4*n*PI/5)*r+240);n为0到5;如果把它那么完整的代码如下
void graph8()//多芒星的画法,貌似的用穷举发,具体方法参考贴吧,主要是那个坐标公式中的n前面的数字不确定
{
initgraph(640,480);
setbkcolor(0x0000ff);
cleardevice();
int start5crood[10]={0};
int r = 500;
POINT p[150];
for(int n=0;n<150;++n)//这个多芒星的内部是什么,我真的不确定。。
{
p[n].x=(int)(sin(142*n*PI/150)*r+320);
p[n].y=(int)(-1*cos(142*n*PI/150)*r+240);
}
//setcolor(0x0000ff);
setfillcolor(0xffffff);
fillpolygon(p,150);
getch();
closegraph();
}
start5crood[2*n]=(int)(sin(4*n*PI/5)*r+320);
start5crood[2*n+1]=(int)(-1*cos(4*n*PI/5)*r+240);n为0到5;如果把它那么完整的代码如下
void graph8()//多芒星的画法,貌似的用穷举发,具体方法参考贴吧,主要是那个坐标公式中的n前面的数字不确定
{
initgraph(640,480);
setbkcolor(0x0000ff);
cleardevice();
int start5crood[10]={0};
int r = 500;
POINT p[150];
for(int n=0;n<150;++n)//这个多芒星的内部是什么,我真的不确定。。
{
p[n].x=(int)(sin(142*n*PI/150)*r+320);
p[n].y=(int)(-1*cos(142*n*PI/150)*r+240);
}
//setcolor(0x0000ff);
setfillcolor(0xffffff);
fillpolygon(p,150);
getch();
closegraph();
}