home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / ellipse / Total_Ellipse.rx < prev   
Text File  |  1999-12-09  |  1KB  |  82 lines

  1. /* Script Rexx
  2.     Ellipse with a number of points*/
  3.  
  4.     call addlib("rexxmathlib.library", 5, -30, 0)
  5.  
  6.     options results
  7.   parse ARG Port x1 y1 r r2 b
  8.  
  9.     ADDRESS COMMAND
  10.     s0=20
  11.     sens=0
  12.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Total_Ellipse') THEN DO
  13.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Total_Ellipse', "R") then DO
  14.             s0 = READLN('lfile')
  15.             sens = READLN('lfile')
  16.             CALL CLOSE('lfile')
  17.         END
  18.     END
  19.  
  20.     Pi=3.1415926/180
  21.  
  22.     ADDRESS value Port
  23.     pp_DialogInit 250 85 "*Ellipse*" 2
  24.         pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 s0
  25.         pp_Cycle 1 110 25 110 16 "Color*Option" 1 "Current*Color|Cycling*Color" sens
  26.     pp_Dialog
  27.     rc=result
  28.     if rc=0 then
  29.         do
  30.             EXIT
  31.         end        
  32.         
  33.     pp_GetDialog 0
  34.     s0=result
  35.  
  36.     pp_GetDialog 1
  37.     sens=result
  38.  
  39.     a=360/s0
  40.  
  41.     pp_GetApen
  42.     z=result
  43.  
  44.     pp_UpdateUndo    
  45.  
  46.     CALL SavePrefs('Total_Ellipse',s0,sens)
  47.     ADDRESS value Port    
  48.  
  49.   DO i=0 To 359 by a
  50.     x = Sin(i*Pi)*r+x1
  51.     y = Cos(i*Pi)*r2+y1
  52.         pp_Plot x y
  53.         if sens=1 then DO
  54.             pp_SetApen z
  55.             z=z+1
  56.         END
  57.     END
  58.  
  59.  
  60. EXIT
  61.  
  62.  
  63. SavePrefs: PROCEDURE
  64.     
  65.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  66.  
  67.     if EXISTS(Prefname) THEN DO
  68.         ADDRESS COMMAND
  69.         'delete >nil: '||Prefname
  70.     END
  71.  
  72.     IF OPEN('pfile',PrefName,'W') THEN DO
  73.  
  74.     do i=2 to ARG()
  75.         CALL WRITELN('pfile',ARG(i))
  76.     end
  77.  
  78.     CALL CLOSE('pfile')
  79.  
  80. RETURN
  81.  
  82.