home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / GRAFPAK.ARC / GRAFPAK2.C < prev   
Encoding:
C/C++ Source or Header  |  2019-04-13  |  1.5 KB  |  59 lines

  1. /* ╟RAPHICS ╨ACKAGE - ╨ART 2
  2. ** ╞ILENAME: GRAFPAK2.C
  3. ** ┴UTHOR: ═ARK ╥. ╥INFRET
  4. ** ─ATE:   12/14/85
  5. ** ─ESCRIPTION:
  6. **
  7. ** ╘HIS IS PART 2 OF A MULTI-PART GRAPHICS PACKAGE, WRITTEN IN ├ (├-╨OWER)
  8. ** FOR THE ├OMMODORE 64.  ╘HE ROUTINES CONTAINED IN THIS SEGMENT ARE:
  9. **
  10. ** ARC     - DRAWS ARCS, LINE SEGMENTS, CIRCLES, ELLIPSES, POLYGONS
  11. ** CIRCLE  - SIMPLIFIED CALL TO ARC
  12. **  
  13. **  
  14. */
  15. #INCLUDE <STDIO.H>
  16. #INCLUDE <STRINGS.H>
  17. #INCLUDE <MATH.H>
  18. #INCLUDE "GRAFPAK.H"
  19.  
  20. /* ╨LOT AN ARC. 
  21. ** ╨ARAMETERS:
  22. ** XORIGIN,YORIGIN - CENTER POINT
  23. ** XRAD,YRAD - X AND Y RADII
  24. ** START,END - STARTING, ENDING POINT FOR ARC, IN DEGREES 
  25. ** ANGL - DEGREES OF ROTATION (NOT USED YET)
  26. ** INCR - DEGREES BETWEEN STEPS (╞╠╧┴╘!); 120.0 YIELDS A TRIANGLE
  27. ** PEN - (0-3) PEN NUMBER TO DRAW WITH
  28. */
  29. ARC(XORIGIN,YORIGIN,XRAD,YRAD,
  30.     START,END,ANGL,INCR,PEN)
  31. UNSIGNED XORIGIN,YORIGIN,XRAD,YRAD,START,END,ANGL; FLOAT INCR; UNSIGNED PEN;
  32.   REGISTER UNSIGNED CNT,X,Y,PX,PY;
  33.   FLOAT ARAD,FSTART,FEND,FINCR,FXRAD,FYRAD,XO,YO;
  34.  
  35.   CNT = 0;
  36.   FINCR = INCR;          /* COPY TO LOCAL */
  37.   FYRAD = YRAD;
  38.   FXRAD = XRAD * ASPECT; /* ADJUST TO ASPECT RATIO */
  39.   XO = XORIGIN; YO = YORIGIN;
  40.   FOR (FSTART=START,FEND=END;FSTART<=FEND;FSTART += FINCR) █
  41.     ARAD = FSTART/╥┴─├╧╬;
  42.     X = XO + FXRAD * COS(ARAD);
  43.     Y = YO + FYRAD * SIN(ARAD);
  44.     IF (!CNT) PSET(X,Y,PEN);
  45.     ELSE LINE(PX,PY,X,Y,PEN);
  46.     PX=X; PY=Y;
  47.     CNT++;
  48.   ▌
  49.  
  50. /* ╨LOT A CIRCLE */
  51. CIRCLE(XORIGIN,YORIGIN,RADIUS,PEN)
  52. UNSIGNED XORIGIN,YORIGIN,RADIUS,PEN;
  53.   ARC(XORIGIN,YORIGIN,RADIUS,RADIUS,
  54.       0,360,0,1.0,1);
  55.