home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / utilities / utilsm / mkdrawf / Examples / src / Circles next >
Encoding:
Text File  |  1994-12-14  |  1.1 KB  |  44 lines

  1. # %x0,%y0 is centre
  2. # %r      is radius
  3. # %a0,%a1 are starting and ending angles in radians
  4. # %n      if set, indicates how many arcs to use
  5. Define Arc {
  6.   Set %da Minus %a1 %a0
  7.   IfExists %n Else
  8.     Set %n Floor Plus .99 Over %da .75
  9.   EndIf
  10.   Set %da Over %da %n
  11.   Set %t Over Minus 1 Cos Over %da 2
  12.               Times .75 Sin Over %da 2
  13.   Move Plus %x0 Times %r Cos %a0
  14.        Plus %y0 Times %r Sin %a0
  15.   Set %aa %a0
  16.   Set %cc Cos %aa
  17.   Set %ss Sin %aa
  18.   For %k 0 %n {
  19.     Set %a %aa
  20.     Set %aa Plus %a %da
  21.     Set %c %cc        Set %s %ss
  22.     Set %cc Cos %aa   Set %ss Sin %aa
  23.     Curve Plus %x0 Times %r Minus %c Times %t %s
  24.           Plus %y0 Times %r Plus %s Times %t %c
  25.           Plus %x0 Times %r Plus %cc Times %t %ss
  26.           Plus %y0 Times %r Minus %ss Times %t %cc
  27.           Plus %x0 Times %r %cc
  28.           Plus %y0 Times %r %ss
  29.   }
  30. }
  31.  
  32. Set $Pi 3.141592653589793
  33.  
  34. Path {
  35.   Arc { %x0 300 %y0 300 %r 200 %a0 0 %a1 Times 2 $Pi %n 2 }
  36.   # very inaccurate: only 2 arcs
  37.   Close
  38. }
  39. Path {
  40.   Arc { %x0 300 %y0 300 %r 200 %a0 0 %a1 Times 2 $Pi }
  41.   # I think this does 9 arcs
  42.   Close
  43. }
  44.