home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / circle / Sun.rx < prev    next >
Text File  |  2000-05-30  |  2KB  |  142 lines

  1. /* Script Rexx
  2.     Make Star
  3. */
  4.  
  5.     call addlib("rexxmathlib.library", 5, -30, 0)
  6.  
  7.     options results
  8.   parse ARG Port x1 y1 r b
  9.  
  10.     ADDRESS COMMAND
  11.     s0=3
  12.     s1=0
  13.     Ray=0
  14.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Sun') THEN DO
  15.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Sun', "R") then DO
  16.             s0 = READLN('lfile')
  17.             s1 = READLN('lfile')
  18.             Ray = READLN('lfile')
  19.       Typ = READLN('lfile')
  20.             CALL CLOSE('lfile')
  21.         END
  22.     END
  23.  
  24.     Pi=3.1415926/180
  25.     r2=r/3
  26.  
  27.     ADDRESS value Port
  28.     pp_DialogInit 250 155 "*Sun*" 5
  29.         pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 s0
  30.         pp_Cycle 1 110 25 100 16 "Option" 1 "Filled|Unfilled" s1
  31.         pp_Integer 2 110 50 50 16 "Sun*Radius" 1 trunc(r2)
  32.         pp_Cycle 3 110 70 100 16 "Ray*Lenght" 1 "Random|Regular" Ray
  33.         pp_Cycle 4 110 100 100 16 "Drawing" 1 "Polygone|Spline" Typ        
  34.     pp_Dialog
  35.     rc=result
  36.     if rc=0 then
  37.         do
  38.             EXIT
  39.         end        
  40.         
  41.     pp_GetDialog 0
  42.     s0=result
  43.  
  44.     pp_GetDialog 1
  45.     s1=result
  46.  
  47.     pp_GetDialog 2
  48.     r2=result
  49.  
  50.     pp_GetDialog 3
  51.     Ray=result
  52.  
  53.     pp_GetDialog 4
  54.     Typ=result
  55.  
  56.     CALL SavePrefs('Sun',s0,s1,Ray,Typ)
  57.     ADDRESS value Port    
  58.  
  59.     a=360/s0
  60.     a2=a/2
  61.  
  62.     pp_UpdateUndo
  63.  
  64.   DO i=0 To 359 by a
  65.         if ray=0 then 
  66.         do
  67.             r3=random(trunc(r2),r,time('S'))+5
  68.         end
  69.         else
  70.         do
  71.         r3=r
  72.         end
  73.  
  74.       x = Sin(i*Pi)*r3+x1
  75.     y = Cos(i*Pi)*r3+y1
  76.  
  77.         ii=i+a2
  78.       x2 = Sin(ii*Pi)*r2+x1
  79.     y2 = Cos(ii*Pi)*r2+y1
  80.  
  81.         ii=i-a2
  82.       x3 = Sin(ii*Pi)*r2+x1
  83.     y3 = Cos(ii*Pi)*r2+y1
  84.  
  85.     if Typ=1 then DO
  86.         if s1=0 then do
  87.         pp_SplineF trunc(x3+0.5) trunc(y3+0.5) trunc(x2+0.5) trunc(y2+0.5) trunc(x+0.5) trunc(y+0.5)
  88.         end
  89.         else do
  90.         pp_Spline trunc(x3) trunc(y3) trunc(x2) trunc(y2) trunc(x) trunc(y)
  91.         end
  92.     END
  93.     ELSE DO
  94.             if s1=0 then do
  95.             pp_StartPoly
  96.             pp_AddPoly trunc(x3+0.5) trunc(y3+0.5)
  97.             pp_AddPoly trunc(x2+0.5) trunc(y2+0.5)
  98.             pp_AddPoly trunc(x+0.5) trunc(y+0.5)
  99.             pp_EndPolyF
  100.             end
  101.             else do
  102.             pp_StartPoly
  103.             pp_AddPoly trunc(x2+0.5) trunc(y2+0.5)
  104.             pp_AddPoly trunc(x+0.5) trunc(y+0.5)
  105.             pp_AddPoly trunc(x3+0.5) trunc(y3+0.5)
  106.             pp_EndPoly
  107.             end
  108.     END
  109.     
  110.         
  111.  
  112.     END
  113.  
  114.         if s1=0 then do
  115.             pp_CircleF x1 y1 trunc(r2+0.5)+2
  116.       end
  117.  
  118. EXIT
  119.  
  120.  
  121. SavePrefs: PROCEDURE
  122.     
  123.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  124.  
  125.     if EXISTS(Prefname) THEN DO
  126.         ADDRESS COMMAND
  127.         'delete >nil: '||Prefname
  128.     END
  129.  
  130.     IF OPEN('pfile',PrefName,'W') THEN DO
  131.  
  132.     do i=2 to ARG()
  133.         CALL WRITELN('pfile',ARG(i))
  134.     end
  135.  
  136.     CALL CLOSE('pfile')
  137.  
  138. RETURN
  139.  
  140.  
  141.  
  142.