home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / circle / AnimStar.rx < prev    next >
Text File  |  1999-12-09  |  2KB  |  118 lines

  1. /* Script Rexx
  2.     Make Anim_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.     r2=r/3
  11.     Pi=3.1415926/180
  12.  
  13.     ADDRESS COMMAND
  14.     sens=0
  15.     s0=3
  16.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/AnimStar') THEN DO
  17.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/AnimStar', "R") then DO
  18.             s0 = READLN('lfile')
  19.             sens = READLN('lfile')
  20.             CALL CLOSE('lfile')
  21.         END
  22.     END
  23.  
  24.     ADDRESS value Port
  25.     pp_DialogInit 250 85 "*Anim*Star*" 2
  26.         pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 s0
  27.         pp_Cycle 1 110 25 100 16 "Option" 1 "Filled|Unfilled" sens
  28.     pp_Dialog
  29.     rc=result
  30.     if rc=0 then
  31.         do
  32.             EXIT
  33.         end        
  34.         
  35.     pp_GetDialog 0
  36.     s0=result
  37.  
  38.     pp_GetDialog 1
  39.     sens=result
  40.  
  41.     CALL SavePrefs('AnimStar',s0,sens)
  42.     ADDRESS value Port
  43.  
  44.  
  45.     pp_CountFrames
  46.     nb=result
  47.     IF nb<2 then DO
  48.         pp_Warn 'Make*an*Anim*first.'
  49.         EXIT
  50.     END    
  51.  
  52.     a=360/s0
  53.     a2=a/2
  54.  
  55.     DO j=0 to 89 by (90/nb)
  56.       co=Cos(j*Pi)
  57.       si=Sin(j*Pi)
  58.         pp_StartPoly
  59.  
  60.       DO i=0 To 359 by a
  61.  
  62.           xx = Sin(i*Pi)*r
  63.         yy = Cos(i*Pi)*r
  64.             x = xx*co-yy*si+x1
  65.             y = xx*si+yy*co+y1
  66.         
  67.             ii=i+a2
  68.           xx = Sin(ii*Pi)*r2
  69.         yy = Cos(ii*Pi)*r2
  70.             x2 = xx*co-yy*si+x1
  71.             y2 = xx*si+yy*co+y1
  72.  
  73.             ii=i-a2
  74.           xx = Sin(ii*Pi)*r2
  75.         yy = Cos(ii*Pi)*r2
  76.             x3 = xx*co-yy*si+x1
  77.             y3 = xx*si+yy*co+y1
  78.         
  79.             pp_AddPoly trunc(x3) trunc(y3)
  80.             pp_AddPoly trunc(x) trunc(y)
  81.             pp_AddPoly trunc(x2) trunc(y2)        
  82.         
  83.         END
  84.  
  85.         IF sens=1 then DO
  86.             pp_EndPoly
  87.         END
  88.         ELSE DO
  89.             pp_EndPolyF
  90.         END
  91.  
  92.         pp_NextFrame
  93.  
  94.     END
  95.  
  96.  
  97. EXIT
  98.  
  99. SavePrefs: PROCEDURE
  100.     
  101.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  102.  
  103.     if EXISTS(Prefname) THEN DO
  104.         ADDRESS COMMAND
  105.         'delete >nil: '||Prefname
  106.     END
  107.  
  108.     IF OPEN('pfile',PrefName,'W') THEN DO
  109.  
  110.     do i=2 to ARG()
  111.         CALL WRITELN('pfile',ARG(i))
  112.     end
  113.  
  114.     CALL CLOSE('pfile')
  115.  
  116. RETURN
  117.  
  118.