home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Interactive Guide
/
c-cplusplus-interactive-guide.iso
/
c_ref
/
csource3
/
141_01
/
circle.c
< prev
next >
Wrap
Text File
|
1985-03-11
|
2KB
|
62 lines
/* circle.c -- complete graph on N pts */
/* 1984 apr 21 pmkrasno */
#include "bdscio.h"
#include "float.h"
#define XSCALE "9.0" /* screen points for 1.0 value */
#define YSCALE "9.0"
#define WH 1 /* colors */
#define BL 15
#define PTS 61
#define wait pause () ; getchar ()
main () { /* read x, y & plot */
float th[PTS], xy[2*PTS], fpnum[1], rad[1] ;
float *sine (), *cosine () ;
float xscale[1], yscale[1] ;
float ulim[1], llim[1], delta[1] ;
unsigned i, j, n, npts, secs1, secs2, siz ;
byte time1[13], time2[13], time3[13] ;
byte dif12[13+5], dif23[13+5] ;
/* initializers */
fpasg (llim, MHALFPI) ; fpadd (ulim, llim, TWOPI) ;
mode2 () ; cls (WH, BL) ;
for (;;) { /* forever */
printf ("Size (1-10), Number (3-%d) ? ", PTS);
if ( scanf ("%d, %d", &siz, &npts) < 2 ||
siz<1 || 10<siz || npts<3 || PTS<npts )
exit () ;
itof (xscale, 9 * siz) ; fpasg (yscale,xscale);
fpdiv (delta, fpsub (delta, ulim, llim),
itof (fpnum, npts) ) ;
syst_d (time1) ;
printf ("Evaluate %3d points: %s\N",
2*npts, time1) ;
comp_pts (npts, 2, th, xy,
llim, delta, cosine, sine) ;
syst_d (time2) ; cls (WH, BL) ;
printf ("Plot %2d lines: %s\N",
npts*(npts-1)/2, time2) ;
for (i = 0 ; i < npts - 1 ; ++i )
for (j = i+1 ; j < npts ; ++j)
fpline (xy+i, xy+i+npts,
xy+j, xy+j+npts,
xscale, yscale, -1) ;
syst_d (time3) ;
printf ("Done : %s\N", time3) ;
secs1 = tim_dif (dif12, time2, time1) ;
secs2 = tim_dif (dif23, time2, time3) ;
/* convert differences to seconds */
printf ("Evaluate: %d secs; Plot: %d secs\N",
secs1, secs2) ;
} /* do forever */
} /* main */
for (;;) { /* forever */
printf ("Size (1-10), Number (3-%d) ? ",