home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug099.arc / ARC.I < prev    next >
Text File  |  1979-12-31  |  896b  |  35 lines

  1. Procedure Arc(XCentre,YCentre,XRadius,YRadius,Start,Finish : Integer;
  2.                  F : Operation);
  3.  
  4. Procedure PlotArc(XCentre,YCentre,XRadius,YRadius,Start,Finish : Integer;
  5.                      F : Operation);
  6.  
  7. const
  8.   Radians = 57.295779;
  9.  
  10. var
  11.   X, Y, XStore, YStore : Integer;
  12.   Loop : Real;
  13.  
  14. Begin
  15.   Loop := Start / Radians;
  16.   While Loop <= Finish / Radians do
  17.     begin
  18.     X := Round(XRadius * Cos(Loop)) + XCentre;
  19.     Y := Round(YRadius * Sin(Loop)) + YCentre;
  20.     if Loop = Start / Radians then begin XStore := X; YStore := Y; end;
  21.     Plot(XStore,YStore,X,Y,F);
  22.     XStore := X; YStore := Y;
  23.     Loop := Loop + 0.15707962;
  24.     end;
  25. End;
  26.  
  27. Begin
  28.   if Start > Finish then
  29.     begin
  30.     PlotArc(XCentre,YCentre,XRadius,YRadius,Start,360,F);
  31.     Start := 0;
  32.     end;
  33.   PlotArc(XCentre,YCentre,XRadius,YRadius,Start,Finish,F);
  34. End;
  35.