#include #include #include #include float sa,x,y; void linetheta(float ang,float l,float *x, float *y) { float rad=3.14159/180, k1, k2; k1=l*cos(rad*ang); k2=l*sin(rad*ang); *x+=k1; *y+=k2; lineto(*x,*y); } void main() { int Driver, Mode, k; /* The Graphics device driver */ struct point { int x,y; } p1; double rr,rad=3.14159/180,k1,k2; p1.x=0, p1.y=380; rr=400.0; Driver = DETECT; /* Request auto-detection */ initgraph( &Driver, &Mode, "" ); sa=-54.7; setcolor(14); x=p1.x; y=p1.y; moveto(x,y); for (k=1; k<=12; k++) { linetheta(sa,rr,&x,&y); getche(); k1=rr*cos(rad*54.7); k2=rr*sin(rad*54.7); sa=fmod(sa+180-35.3,360); linetheta(sa,k2,&x,&y); sa=fmod(sa+90,360); linetheta(sa,k1,&x,&y); sa=fmod(sa+90,360); linetheta(sa,k2,&x,&y); sa=fmod(sa+90,360); linetheta(sa,k1,&x,&y); sa=fmod(sa+35.3,360); rr=rr/1.41414; getche(); } getche(); closegraph(); /* Return the system to text mode */ }