多笔绘制:
//编译环境:Visual C++ 6.0,EasyX_20190219(beta)
#include<graphics.h>
#include<math.h>
#include<conio.h>
int main()
{
initgraph(640,480);
setcolor(RED);
int n=7,i,j;
double t=3.14159*2/n,r=150.0;
double x0=300.0,y0=200.0,x[7],y[7];
for(i=0;i<n;i++)
{
x[i]=r*cos(i*t)+x0;
y[i]=r*sin(i*t)+y0;
}
for(i=0;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
line(x[i],y[i],x[j],y[j]);
_getch();
closegraph();
return 0;
}
n=5时,效果如下:
一笔绘制
//功能:一笔绘制金刚石图案(n>=5,n是奇数)
//编译环境:Visual C++ 6.0,EasyX_20190219(beta)
#include<graphics.h>
#include<math.h>
#include<conio.h>
int main()
{
initgraph(640,480);
setcolor(RED);
int n=7,i,j;
double t=3.14159*2/n,r=150.0;
double x0=300.0,y0=200.0,x[7],y[7];
for(i=0;i<n;i++)
{
x[i]=r*cos(i*t)+x0;
y[i]=r*sin(i*t)+y0;
}
for(i=1;i<=n/2;i++)
for(j=0;j<n;j++)
{
if((j+i)>=n)
{
int r=(j+i)%n;
line(x[j],y[j],x[r],y[r]);
}
else
line(x[j],y[j],x[j+i],y[j+i]);
}
_getch();
closegraph();
return 0;
}
n=20时,效果如下: