下面这个图案是用最简单的画线函数画出的,而且程序代码也不长.程序如下:
#include
#include
#include
void main()
{
float t;
int x0=320,y0=240;
int n,i,j,r;
int x[50],y[5];
int gdriver=DETECT,gmode;
printf("input n(23-31)and r(100-200)\n"); /*读入表示图形复杂度大小的设置参数*/
scanf("%d %d",&n,&r);
initgraph(&gdriver,&gmode,"\\tc\\bgi"); /*设置图形方式初始化*/
cleardevice(); /*清屏*/
setbkcolor(WHITE); /*设置缘景为白色*/
setcolor(RED); /*设置绘图色为红色*/
t=6.28318/n;
for(i=0;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;j++)
line(x[i],y[i],x[j],y[j]);
}
getch();
closegraph();
}
程序分析:
该程序首先用initgraph()自动设置图形驱动及显示模式,接着调用清屏函数cleardevice()清除屏幕.在第一个for循环中,根据读入的n和r的值计算需要描绘的端点的坐标值,在第二个for循环中一连几天出各线段。最后,当用getch()函数接收到有键盘输入时,closegraph()函数关闭图形显示。线段端点的坐标是怎样计算出来的呢?其实只要将一个圆分成几等份并把各等分点连起来就可以了.