home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 16 / 16.iso / w / w023 / 5.ddi / CELPOC.001 / SUN.POC < prev    next >
Encoding:
Text File  |  1990-08-31  |  1.2 KB  |  91 lines

  1. // This is the old sun.poc file all right
  2.  
  3. #define SPOKES 16
  4.  
  5. half_circle(double arc, double len)
  6. {
  7. #define STEPS 16
  8. int i;
  9. double inc;
  10.  
  11. inc = arc/STEPS;
  12. i = STEPS;
  13. while (--i >= 0)
  14.     {
  15.     Move(len);
  16.     Right(inc);
  17.     }
  18. #undef STEPS
  19. }
  20.  
  21. make_spoke(double len)
  22. {
  23. int i;
  24. int color = 99;
  25. double arc = 180;
  26. double sign = 1;
  27. int bsize = 10;
  28.  
  29. i = 11;
  30. while (--i >= 0)
  31.     {
  32.     SetColor(color);
  33.     SetBrushSize(bsize);
  34.     half_circle(arc*sign,len);
  35.     sign = -sign;
  36.     arc -= 10;
  37.     color -= 1;
  38.     bsize -= 1;
  39.     }
  40. }
  41.  
  42. make_spokes(double len)
  43. {
  44. double x,y,a;
  45. double i;
  46.  
  47. int bin=0;
  48. double slen, rlen;
  49. Where(&x,&y,&a);
  50. slen = len*0.8;
  51. for (i=0; i<360; i+=360.0/SPOKES)
  52.     {
  53.     MoveTo(x,y,a+i);
  54.     rlen = len;
  55.     if (bin)
  56.         make_spoke(len);
  57.     else
  58.         make_spoke(slen);
  59.     bin = !bin;
  60.     }
  61. MoveTo(x,y,a);
  62. }
  63.  
  64. main()
  65. {
  66. #define FCOUNT 16
  67. int i;
  68. double len = 0.5;
  69. int obsize;
  70.  
  71. obsize = GetBrushSize();
  72. NewFlic();
  73. SetFrameCount(FCOUNT*2);
  74. for (i=0; i<FCOUNT; i++)
  75.     {
  76.     make_spokes(len);
  77.     len += 0.025;
  78.     Right(360.0/(SPOKES*FCOUNT));
  79.     NextFrame();
  80.     }
  81. for (i=0; i<FCOUNT; i++)
  82.     {
  83.     make_spokes(len);
  84.     len -= 0.025;
  85.     Right(360.0/(SPOKES*FCOUNT));
  86.     NextFrame();
  87.     }
  88. SetBrushSize(obsize);
  89. //exit(-425);
  90. }
  91.