home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / text / Circle_Text_new.rx < prev    next >
Text File  |  2000-11-08  |  2KB  |  128 lines

  1. /*
  2.     Arexx Text Script
  3.     modificated by Antibike 07.11.2000
  4. */
  5.  
  6.     call addlib("rexxmathlib.library", 5, -30, 0)
  7.  
  8.     options results
  9.      parse ARG Port x1 y1 b
  10.     ADDRESS value Port
  11.  
  12.     Pi=3.1415926/180
  13.     
  14.     pp_AvoidRefresh
  15.  
  16.     r=100
  17.     c=0
  18.     startw=180
  19.     usew=360
  20.  
  21.     pp_DialogInit 230 116 "*Circle*Text*" 4
  22.         pp_Integer 0 80 5 50 16 "Radius" 1 r
  23.         pp_Cycle 1 80 25 60 16 "Turn" 1 "right|left" c
  24.         pp_slider 2 80 45 100 16 "Startwinkel" 1 0 360 startW
  25.         pp_slider 3 80 65 100 16 "Usewinkel" 1 0 360 useW
  26.     pp_Dialog
  27.     rc=result
  28.     if rc=0 then
  29.         do
  30.             pp_PermitRefresh
  31.             EXIT
  32.         end    
  33.  
  34.     pp_UpdateUndo    
  35.  
  36.  
  37.     pp_GetText
  38.     texte=result
  39.     
  40.     pp_GetDialog 0
  41.     r=result
  42.     pp_GetDialog 1
  43.     c=result
  44.     pp_GetDialog 2
  45.     startW=result
  46.     pp_GetDialog 3
  47.     useW=result
  48.     
  49. if c=1 then DO
  50.  
  51.     endW=startW+useW
  52.         
  53.     s0=length(texte)
  54.     
  55.     p=s0
  56.     if useW<359 then DO
  57.     p=s0-1
  58.     end
  59.     
  60.     a=useW/p
  61.     
  62.     if useW<359 then DO
  63.     endW=endW+a
  64.     end
  65.  
  66.     j=1
  67.     
  68.  
  69.   DO i=startW To endW by a*+1
  70.   
  71.     x = trunc(Sin(i*Pi)*r+x1+0.5,0)
  72.     y = trunc(Cos(i*Pi)*r+y1+0.5,0)
  73.         t=substr(texte,j,1)
  74.  
  75.         if t~="   " then DO
  76.             pp_TextRotate i
  77.             pp_TextMake t
  78.             pp_TextDraw x y
  79.         end
  80.  
  81.         j=j+1
  82.  
  83.     END
  84.     
  85. end
  86. if c=0 then DO
  87.  
  88.     endW=startW-useW
  89.         
  90.     s0=length(texte)
  91.     
  92.     p=s0
  93.     if useW<359 then DO
  94.     p=s0-1
  95.     end
  96.     
  97.     a=useW/p
  98.     
  99.     if useW<359 then DO
  100.     endW=endW-a
  101.     end
  102.  
  103.     j=1
  104.     
  105.  
  106.   DO i=startW To endW by a*-1
  107.   
  108.     x = trunc(Sin(i*Pi)*r+x1+0.5,0)
  109.     y = trunc(Cos(i*Pi)*r+y1+0.5,0)
  110.         t=substr(texte,j,1)
  111.  
  112.         if t~="   " then DO
  113.             pp_TextRotate i+180
  114.             pp_TextMake t
  115.             pp_TextDraw x y
  116.         end
  117.  
  118.         j=j+1
  119.  
  120.     END
  121.     
  122. end
  123.     
  124.  
  125.     pp_Refresh
  126.     pp_TextRestore
  127.     pp_TextMake
  128.     pp_PermitRefresh