home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / line / AnimPainting_Line.rx < prev    next >
Text File  |  1999-01-31  |  912b  |  75 lines

  1. /* Script Rexx
  2.     AnimPainting for Line*/
  3.  
  4.     call addlib("rexxmathlib.library", 5, -30, 0)
  5.  
  6.     options results
  7.   parse ARG Port x1 y1 x2 y2 b
  8.     ADDRESS value Port
  9.  
  10.     pp_CountFrames
  11.     nb=result
  12.     IF nb<2 then DO
  13.         pp_Warn 'Make*an*Anim*first.'
  14.         EXIT
  15.     END    
  16.  
  17.   X=x1
  18.   Y=y1
  19.  
  20.   DX=x2 - x1
  21.   DY=y2 - y1
  22.  
  23.   If DX < 0 THEN DO
  24.     XC=-1
  25.     DX = -DX
  26.   END
  27.   ELSE
  28.   DO
  29.     XC=1
  30.   END
  31.  
  32.  
  33.   If DY < 0 THEN DO
  34.     YC=-1
  35.     DY = -DY
  36.   END
  37.   ELSE
  38.   DO
  39.     YC= 1
  40.   END
  41.  
  42.     ERROR=0
  43.     i=0
  44.  
  45.     If DX < DY THEN DO
  46.     L=DY + 1
  47.     DO While i < L
  48.         pp_Plot X Y
  49.            pp_NextFrame
  50.       Y=Y + YC
  51.       Error=Error + DX
  52.       If Error >DY THEN DO
  53.           X=X + XC
  54.         Error=Error - DY
  55.       END
  56.       i=i + 1
  57.     END
  58.     END
  59.     ELSE
  60.     DO
  61.       L=DX + 1
  62.     DO While i < L
  63.         pp_Plot X Y
  64.            pp_NextFrame
  65.       X=X + XC
  66.       Error=Error + DY
  67.       If Error > DX THEN DO
  68.           Y=Y + YC
  69.         Error=Error - DX
  70.       END
  71.       i=i + 1
  72.     END
  73.     END
  74.  
  75.