home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Graphics
/
PerfectPaint
/
rexx
/
spline
/
Total_Spline.rx
< prev
Wrap
Text File
|
1999-12-10
|
1KB
|
93 lines
/* Script Rexx
Spline with a number of point*/
call addlib("rexxmathlib.library", 5, -30, 0)
options results
parse ARG Port Mx My Mx1 My1 Mxa Mya b
ADDRESS COMMAND
sens=0
sz=20
if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/Total_Spline') THEN DO
IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/Total_Spline', "R") then DO
sens = READLN('lfile')
sz = READLN('lfile')
CALL CLOSE('lfile')
END
END
ADDRESS value Port
pp_DialogInit 250 85 "*Spline*" 2
pp_Integer 0 110 5 50 16 "Number*of*Point*" 1 sz
pp_Cycle 1 110 25 110 16 "Color*Option" 1 "Current*Color|Cycling*Color" sens
pp_Dialog
rc=result
if rc=0 then
do
EXIT
end
pp_UpdateUndo
pp_GetDialog 0
sz=result
pp_GetDialog 1
sens=result
CALL SavePrefs('Total_Spline',sens,sz)
ADDRESS value Port
xa= (Mx+Mx1)/2
ya= (My+My1)/2
Mxa= xa + 2*(Mxa-xa)
Mya= ya + 2*(Mya-ya)
x=Mx
y=My
pp_GetApen
z=result
sz=sz-1
pp_Plot Mx My
DO f=1 To sz
ff=f/sz
xa=Mx+(Mxa-Mx)*ff
ya=My+(Mya-My)*ff
xb=Mxa+(Mx1-Mxa)*ff
yb=Mya+(My1-Mya)*ff
x=trunc(xa+(xb-xa)*ff+0.5)
y=trunc(ya+(yb-ya)*ff+0.5)
pp_Plot x y
if sens=1 then DO
pp_SetApen z
z=z+1
END
END
EXIT
SavePrefs: PROCEDURE
Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
if EXISTS(Prefname) THEN DO
ADDRESS COMMAND
'delete >nil: '||Prefname
END
IF OPEN('pfile',PrefName,'W') THEN DO
do i=2 to ARG()
CALL WRITELN('pfile',ARG(i))
end
CALL CLOSE('pfile')
RETURN