home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 141_01 / circle.c < prev    next >
Text File  |  1985-03-10  |  2KB  |  62 lines

  1. /* circle.c -- complete graph on N pts */
  2. /* 1984 apr 21 pmkrasno */
  3. #include "bdscio.h"
  4. #include "float.h"
  5. #define XSCALE "9.0"    /* screen points for 1.0 value */
  6. #define YSCALE "9.0"
  7. #define WH 1    /* colors */
  8. #define BL 15
  9. #define PTS 61
  10. #define wait pause () ; getchar () 
  11.  
  12. main ()    {    /* read x, y & plot */
  13.     float th[PTS], xy[2*PTS], fpnum[1], rad[1] ;
  14.     float *sine (), *cosine () ; 
  15.     float xscale[1], yscale[1] ;
  16.     float ulim[1], llim[1], delta[1] ;
  17.     unsigned i, j, n, npts, secs1, secs2, siz ;
  18.     byte time1[13], time2[13], time3[13] ;
  19.     byte dif12[13+5], dif23[13+5] ;
  20.  
  21.         /* initializers */
  22.     fpasg (llim, MHALFPI)  ; fpadd (ulim, llim, TWOPI) ;
  23.     mode2 () ; cls (WH, BL) ;
  24.  
  25.     for (;;) {    /* forever */
  26.         printf ("Size (1-10), Number (3-%d) ? ", PTS);
  27.         if ( scanf ("%d, %d", &siz, &npts) < 2 ||
  28.             siz<1 || 10<siz || npts<3 || PTS<npts )
  29.             exit () ;
  30.         itof (xscale, 9 * siz) ; fpasg (yscale,xscale);
  31.         fpdiv (delta, fpsub (delta, ulim, llim),
  32.             itof (fpnum, npts) ) ;
  33.  
  34.         syst_d (time1) ; 
  35.         printf ("Evaluate %3d points: %s\N", 
  36.             2*npts, time1) ;
  37.         comp_pts (npts, 2, th, xy, 
  38.             llim, delta, cosine, sine) ;
  39.  
  40.         syst_d (time2) ; cls (WH, BL) ;
  41.         printf ("Plot %2d lines:      %s\N", 
  42.             npts*(npts-1)/2, time2) ;
  43.         for (i = 0 ; i < npts - 1 ; ++i )
  44.             for (j = i+1 ; j < npts ; ++j)
  45.             fpline (xy+i, xy+i+npts, 
  46.                 xy+j, xy+j+npts,
  47.                 xscale, yscale, -1) ;
  48.  
  49.         syst_d (time3) ;
  50.         printf ("Done :               %s\N", time3) ;
  51.         secs1 = tim_dif (dif12, time2, time1) ;
  52.         secs2 = tim_dif (dif23, time2, time3) ;
  53.         /* convert differences to seconds */
  54.         printf ("Evaluate: %d secs; Plot: %d secs\N", 
  55.             secs1, secs2) ;
  56.     } /* do forever */
  57. } /* main */
  58.  
  59. 
  60.  
  61.     for (;;) {    /* forever */
  62.         printf ("Size (1-10), Number (3-%d) ? ",