diff options
Diffstat (limited to 'ipl/gprocs/linddefs.icn')
-rw-r--r-- | ipl/gprocs/linddefs.icn | 424 |
1 files changed, 424 insertions, 0 deletions
diff --git a/ipl/gprocs/linddefs.icn b/ipl/gprocs/linddefs.icn new file mode 100644 index 0000000..793ecf2 --- /dev/null +++ b/ipl/gprocs/linddefs.icn @@ -0,0 +1,424 @@ +############################################################################ +# +# File: linddefs.icn +# +# Subject: Procedure to produce table of L-systems +# +# Author: Ralph E. Griswold +# +# Date: November 22, 1997 +# +############################################################################ +# +# This file is in the public domain. +# +############################################################################ +# +# This procedure produces a table of L-systems. +# +############################################################################ +# +# Links: lindrec +# +############################################################################ + +link lindrec + +procedure linddefs() + local linden + + linden := table() + + linden["fibbush"] := lsys_0l("", table(), 0, 90) + linden["fibbush"].rewrite["A"] := "[B/////'B///////'B]" + linden["fibbush"].rewrite["B"] := "[&IL!A]" + linden["fibbush"].rewrite["I"] := "FL" + linden["fibbush"].rewrite["F"] := "F/////I" + linden["fibbush"].rewrite["L"] := "['''^^{-F+F+F-|-F+F+F}]" + linden["fibbush"].gener := 3 + linden["fibbush"].length := 3 + linden["fibbush"].axiom := "A" + linden["fibbush"].angle := 22.5 + linden["ebush"] := lsys_0l("", table(), 0, 90) + linden["ebush"].rewrite["P"] := "I+[P+O]--//[--L]I[++L]-[PO]++PO" + linden["ebush"].rewrite["I"] := "FS[//&&L][//^^L]FS" + linden["ebush"].rewrite["S"] := "SFS" + linden["ebush"].rewrite["L"] := "['{+f-ff-f+|+f-ff-f}]" + linden["ebush"].rewrite["O"] := "[&&&D`/W////W////W////W////W]" + linden["ebush"].rewrite["D"] := "FF" + linden["ebush"].rewrite["W"] := "[`^F][{&&&&-f+f|-f+f}]" + linden["ebush"].axiom := "P" + linden["ebush"].angle := 18.0 + linden["ebush"].gener := 3 + linden["ebush"].length := 3 + linden["bush"] := lsys_0l("", table(), 0, 90) + linden["bush"].rewrite["F"] := "FF-[-F+F+F]+[+F-F-F]" + linden["bush"].axiom := "++++F" + linden["bush"].angle := 22.5 + linden["cesaro"] := lsys_0l("", table(), 0, 90) + linden["cesaro"].rewrite["X"] := "----F!X!++++++++F!X!----" + linden["cesaro"].rewrite["F"] := "" + linden["cesaro"].gener := 10 + linden["cesaro"].length := 3 + linden["cesaro"].axiom := "FX" + linden["cesaro"].angle := 10.58823529 + linden["curve1"] := lsys_0l("", table(), 0, 90) + linden["curve1"].rewrite["F"] := "FF-F-F-F-F-F+F" + linden["curve1"].axiom := "F-F-F-F-" + linden["curve1"].angle := 90.0 + linden["curve2"] := lsys_0l("", table(), 0, 90) + linden["curve2"].rewrite["F"] := "FF-F+F-F-FF" + linden["curve2"].axiom := "F-F-F-F-" + linden["curve2"].angle := 90.0 + linden["curve3"] := lsys_0l("", table(), 0, 90) + linden["curve3"].rewrite["F"] := "F-FF--F-F" + linden["curve3"].axiom := "F-F-F-F-" + linden["curve3"].angle := 90.0 + linden["curve4"] := lsys_0l("", table(), 0, 90) + linden["curve4"].rewrite["X"] := "YF+XF+Y" + linden["curve4"].rewrite["Y"] := "XF-YF-X" + linden["curve4"].axiom := "YF" + linden["curve4"].angle := 60.0 + linden["curve4"].gener := 5 + linden["dragon"] := lsys_0l("", table(), 0, 90) + linden["dragon"].rewrite["X"] := "-FX++FY-" + linden["dragon"].rewrite["Y"] := "+FX--FY+" + linden["dragon"].rewrite["F"] := "" + linden["dragon"].axiom := "FX" + linden["dragon"].angle := 45.0 + linden["dragon"].gener := 10 + linden["dragon1"] := lsys_0l("", table(), 0, 90) + linden["dragon1"].rewrite["r"] := "-Fl-r" + linden["dragon1"].rewrite["l"] := "l+rF+" + linden["dragon1"].axiom := "Fl" + linden["dragon1"].gener := 14 + linden["dragonc"] := lsys_0l("", table(), 0, 90) + linden["dragonc"].rewrite["X"] := "X-YF-" + linden["dragonc"].rewrite["Y"] := "+FX+Y" + linden["dragonc"].axiom := "X" + linden["dragonc"].angle := 90.0 + linden["dragonc"].gener := 10 + linden["fass1"] := lsys_0l("", table(), 0, 90) + linden["fass1"].rewrite["R"] := "-LFLF+RFRFR+F+RF-LFL-FR" + linden["fass1"].rewrite["L"] := "LF+RFR+FL-F-LFLFL-FRFR+" + linden["fass1"].axiom := "-L" + linden["fass1"].angle := 90.0 + linden["fass2"] := lsys_0l("", table(), 0, 90) + linden["fass2"].rewrite["R"] := "-LFLFLF+RFR+FL-F-LF+RFR+FLF+RFRF-LFL-FRFR" + linden["fass2"].rewrite["L"] := "LFLF+RFR+FLFL-FRF-LFL-FR+F+RF-LFL-FRFRFR+" + linden["fass2"].axiom := "-L" + linden["fass2"].angle := 90.0 + linden["flake3"] := lsys_0l("", table(), 0, 90) + linden["flake3"].rewrite["X"] := "++FXFY--FX--FY" + linden["flake3"].rewrite["Y"] := "FYFX+++FYFX++FX++FYFX|+FX--FY--FXFY++" + linden["flake3"].rewrite["F"] := "" + linden["flake3"].axiom := "FX" + linden["flake3"].angle := 30.0 + linden["flake3"].gener := 10 + linden["hilbert"] := lsys_0l("", table(), 0, 90) + linden["hilbert"].rewrite["X"] := "-YF+XFX+FY-" + linden["hilbert"].rewrite["Y"] := "+XF-YFY-FX+" + linden["hilbert"].axiom := "X" + linden["hilbert"].angle := 90.0 + linden["hilbert"].gener := 10 + linden["island1"] := lsys_0l("", table(), 0, 90) + linden["island1"].rewrite["F"] := "FFFF-F+F+F-F[-FF+F+FF+F]FF" + linden["island1"].axiom := "F+F+F+F" + linden["island1"].angle := 90.0 + linden["island2"] := lsys_0l("", table(), 0, 90) + linden["island2"].rewrite["F"] := "F+F-FF-F-FF++FF-F+FF+F+FF--FFF" + linden["island2"].axiom := "F+F+F+F" + linden["island2"].angle := 90.0 + linden["island2"].gener := 4 + linden["island2"].length := 2 + linden["koch1"] := lsys_0l("", table(), 0, 90) + linden["koch1"].rewrite["F"] := "F+F--F+F" + linden["koch1"].axiom := "F--F--F" + linden["koch1"].angle := 60.0 + linden["koch1"].gener := 4 + linden["koch1"].length := 4 + linden["koch2"] := lsys_0l("", table(), 0, 90) + linden["koch2"].rewrite["F"] := "-F+++F---F+" + linden["koch2"].axiom := "F---F---F---F" + linden["koch2"].angle := 30.0 + linden["koch2"].gener := 6 + linden["koch2"].length := 4 + linden["koch3"] := lsys_0l("", table(), 0, 90) + linden["koch3"].rewrite["F"] := "F-F+F+FF-F-F+F" + linden["koch3"].axiom := "F-F-F-F" + linden["koch3"].angle := 90.0 + linden["koch3"].gener := 6 + linden["koch3"].length := 4 + linden["koch4"] := lsys_0l("", table(), 0, 90) + linden["koch4"].rewrite["F"] := "+F--F++F-" + linden["koch4"].axiom := "F++++F++++F" + linden["koch4"].angle := 30.0 + linden["koch4"].gener := 5 + linden["koch4"].length := 3 + linden["koch5"] := lsys_0l("", table(), 0, 90) + linden["koch5"].rewrite["F"] := "F+F-F-FFF+F+F-F" + linden["koch5"].axiom := "F+F+F+F" + linden["koch5"].angle := 90.0 + linden["koch6"] := lsys_0l("", table(), 0, 90) + linden["koch6"].rewrite["F"] := "F-FF+FF+F+F-F-FF+F+F-F-FF-FF+F" + linden["koch6"].axiom := "F+F+F+F" + linden["koch6"].angle := 90.0 + linden["koch7"] := lsys_0l("", table(), 0, 90) + linden["koch7"].rewrite["F"] := "F+F-F+F+F" + linden["koch7"].axiom := "F+F+F+F" + linden["koch7"].gener := 4 + linden["koch8"] := lsys_0l("", table(), 0, 90) + linden["koch8"].rewrite["F"] := "F+F--F+F" + linden["koch8"].axiom := "F" + linden["koch8"].angle := 60.0 + linden["lakeisle"] := lsys_0l("", table(), 0, 90) + linden["lakeisle"].rewrite["F"] := "F-f+FF-F-FF-Ff-FF+f-FF+F+FF+Ff+FFF" + linden["lakeisle"].rewrite["f"] := "ffffff" + linden["lakeisle"].axiom := "F-F-F-F" + linden["lakeisle"].gener := 2 + linden["leaf1"] := lsys_0l("", table(), 0, 90) + linden["leaf1"].rewrite["H"] := "J" + linden["leaf1"].rewrite["P"] := "X" + linden["leaf1"].rewrite["X"] := "F[+AAAA]FY" + linden["leaf1"].rewrite["E"] := "H" + linden["leaf1"].rewrite["B"] := "E" + linden["leaf1"].rewrite["J"] := "Y" + linden["leaf1"].rewrite["O"] := "P" + linden["leaf1"].rewrite["A"] := "N" + linden["leaf1"].rewrite["Y"] := "F[-BBBB]FX" + linden["leaf1"].rewrite["N"] := "O" + linden["leaf1"].axiom := "X" + linden["leaf1"].angle := 45.0 + linden["leaf1"].gener := 10 + linden["leaf2"] := lsys_0l("", table(), 0, 90) + linden["leaf2"].rewrite["X"] := "A" + linden["leaf2"].rewrite["B"] := "F[-Y]FA" + linden["leaf2"].rewrite["A"] := "F[+X]BF" + linden["leaf2"].rewrite["Y"] := "B" + linden["leaf2"].axiom := "A" + linden["leaf2"].angle := 45.0 + linden["leaf2"].gener := 14 + linden["peano1"] := lsys_0l("", table(), 0, 90) + linden["peano1"].rewrite["F"] := "F-F+F+F+F-F-F-F+F" + linden["peano1"].axiom := "F-F-F-F" + linden["peano1"].angle := 90.0 + linden["peano2"] := lsys_0l("", table(), 0, 90) + linden["peano2"].rewrite["X"] := "XY-F-FXY++F++FXY" + linden["peano2"].rewrite["Y"] := "-F-FXY" + linden["peano2"].axiom := "FXY++F++FXY++F" + linden["peano2"].angle := 45.0 + linden["peano2"].gener := 4 + linden["peano2"].length := 7 + linden["peano3"] := lsys_0l("", table(), 0, 90) + linden["peano3"].rewrite["X"] := "XFYFX+F+YFXFY-F-XFYFX" + linden["peano3"].rewrite["Y"] := "YFXFY-F-XFYFX+F+YFXFY" + linden["peano3"].axiom := "X" + linden["peano3"].angle := 90.0 + linden["penrose1"] := lsys_0l("", table(), 0, 90) + linden["penrose1"].rewrite["X"] := "+YF--ZF[---WF--XF]+" + linden["penrose1"].rewrite["Z"] := "--YF++++WF[+ZF++++XF]--XF" + linden["penrose1"].rewrite["W"] := "YF++ZF----XF[-YF----WF]++" + linden["penrose1"].rewrite["Y"] := "-WF++XF[+++YF++ZF]-" + linden["penrose1"].rewrite["F"] := "" + linden["penrose1"].axiom := "+WF--XF---YF--ZF" + linden["penrose1"].angle := 36.0 + linden["penrose2"] := lsys_0l("", table(), 0, 90) + linden["penrose2"].rewrite["X"] := "+YF--ZF[---WF--XF]+" + linden["penrose2"].rewrite["Z"] := "--YF++++WF[+ZF++++XF]--XF" + linden["penrose2"].rewrite["W"] := "YF++ZF----XF[-YF----WF]++" + linden["penrose2"].rewrite["Y"] := "-WF++XF[+++YF++ZF]-" + linden["penrose2"].rewrite["F"] := "" + linden["penrose2"].axiom := "++ZF----XF-YF----WF" + linden["penrose2"].angle := 36.0 + linden["penrose2"].gener := 5 + linden["penrose2"].length := 10 + linden["penrose3"] := lsys_0l("", table(), 0, 90) + linden["penrose3"].rewrite["X"] := "+YF--ZF[---WF--XF]+" + linden["penrose3"].rewrite["Z"] := "--YF++++WF[+ZF++++XF]--XF" + linden["penrose3"].rewrite["W"] := "YF++ZF----XF[-YF----WF]++" + linden["penrose3"].rewrite["Y"] := "-WF++XF[+++YF++ZF]-" + linden["penrose3"].rewrite["F"] := "" + linden["penrose3"].axiom := "[X]++[X]++[X]++[X]++[X]" + linden["penrose3"].angle := 36.0 + linden["penrose3"].gener := 5 + linden["penrose3"].length := 10 + linden["penrose4"] := lsys_0l("", table(), 0, 90) + linden["penrose4"].rewrite["X"] := "+YF--ZF[---WF--XF]+" + linden["penrose4"].rewrite["Z"] := "--YF++++WF[+ZF++++XF]--XF" + linden["penrose4"].rewrite["W"] := "YF++ZF----XF[-YF----WF]++" + linden["penrose4"].rewrite["Y"] := "-WF++XF[+++YF++ZF]-" + linden["penrose4"].rewrite["F"] := "" + linden["penrose4"].axiom := "[Y]++[Y]++[Y]++[Y]++[Y]" + linden["penrose4"].angle := 36.0 + linden["penrose4"].gener := 5 + linden["penrose4"].length := 10 + linden["penrosed"] := lsys_0l("", table(), 0, 90) + linden["penrosed"].rewrite["X"] := "+YF--ZF[---WF--XF]+" + linden["penrosed"].rewrite["Z"] := "--YF++++WF[+ZF++++XF]--XF" + linden["penrosed"].rewrite["W"] := "YF++ZF----XF[-YF----WF]++" + linden["penrosed"].rewrite["Y"] := "-WF++XF[+++YF++ZF]-" + linden["penrosed"].rewrite["F"] := "" + linden["penrosed"].axiom := "[X][Y]++[X][Y]++[X][Y]++[X][Y]++[X][Y]" + linden["penrosed"].angle := 36.0 + linden["penrosed"].length := 40 + linden["plant01"] := lsys_0l("", table(), 0, 90) + linden["plant01"].rewrite["F"] := "F[+F]F[-F]F" + linden["plant01"].axiom := "F" + linden["plant01"].angle := 25.71428571 + linden["plant01"].gener := 10 + linden["plant02"] := lsys_0l("", table(), 0, 90) + linden["plant02"].rewrite["F"] := "F[+F]F[-F][F]" + linden["plant02"].axiom := "F" + linden["plant02"].angle := 20.0 + linden["plant03"] := lsys_0l("", table(), 0, 90) + linden["plant03"].rewrite["F"] := "FF-[-F+F+F]+[+F-F-F]" + linden["plant03"].axiom := "F" + linden["plant03"].angle := 22.5 + linden["plant03"].gener := 4 + linden["plant04"] := lsys_0l("", table(), 0, 90) + linden["plant04"].rewrite["X"] := "F[+X]F[-X]+X" + linden["plant04"].rewrite["F"] := "FF" + linden["plant04"].axiom := "X" + linden["plant04"].angle := 20.0 + linden["plant04"].gener := 5 + linden["plant05"] := lsys_0l("", table(), 0, 90) + linden["plant05"].rewrite["X"] := "F[+X][-X]FX" + linden["plant05"].rewrite["F"] := "FF" + linden["plant05"].axiom := "X" + linden["plant05"].angle := 25.71428571 + linden["plant05"].gener := 5 + linden["plant06"] := lsys_0l("", table(), 0, 90) + linden["plant06"].rewrite["X"] := "F-[[X]+X]+F[+FX]-X" + linden["plant06"].rewrite["F"] := "FF" + linden["plant06"].axiom := "X" + linden["plant06"].angle := 22.5 + linden["plant06"].gener := 5 + linden["plant07"] := lsys_0l("", table(), 0, 90) + linden["plant07"].rewrite["X"] := "X[-FFF][+FFF]FX" + linden["plant07"].rewrite["Z"] := "ZFX[+Z][-Z]" + linden["plant07"].axiom := "Z" + linden["plant07"].angle := 25.71428571 + linden["plant07"].gener := 5 + linden["plant08"] := lsys_0l("", table(), 0, 90) + linden["plant08"].rewrite["S"] := "[+++Z][---Z]TS" + linden["plant08"].rewrite["H"] := "-Z[+H]L" + linden["plant08"].rewrite["Z"] := "+H[-Z]L" + linden["plant08"].rewrite["L"] := "[-FFF][+FFF]F" + linden["plant08"].rewrite["T"] := "TL" + linden["plant08"].axiom := "SLFFF" + linden["plant08"].angle := 18.0 + linden["plant08"].gener := 6 + linden["plant08"].length := 8 + linden["plant09"] := lsys_0l("", table(), 0, 90) + linden["plant09"].rewrite["X"] := "X[-FFF][+FFF]FX" + linden["plant09"].rewrite["Y"] := "YFX[+Y][-Y]" + linden["plant09"].axiom := "Y" + linden["plant09"].angle := 25.71428571 + linden["plant09"].gener := 5 + linden["plant10"] := lsys_0l("", table(), 0, 90) + linden["plant10"].rewrite["F"] := "F[+FF][-FF]F[+FF][-FF]F" + linden["plant10"].axiom := "F" + linden["plant10"].angle := 36.0 + linden["plant10"].gener := 3 + linden["plant11"] := lsys_0l("", table(), 0, 90) + linden["plant11"].rewrite["F"] := "F[+F[+F][-F]F][-F[+F][-F]F]F[+F][-F]F" + linden["plant11"].axiom := "F" + linden["plant11"].angle := 30.0 + linden["plant11"].gener := 3 + linden["plant11"].length := 10 + linden["quadgos"] := lsys_0l("", table(), 0, 90) + linden["quadgos"].rewrite["R"] := "+FLFL-FR-FR+FL+FLFR+FL-FRFR-FL-FR+FLFRFR-FL-FRFL+FL+FR-FR-FL+FL+FRFR" + linden["quadgos"].rewrite["L"] := "FLFL-FR-FR+FL+FL-FR-FRFL+FR+FLFLFR-FL+FR+FLFL+FR-FLFR-FR-FL+FL+FRFR-" + linden["quadgos"].rewrite["F"] := "" + linden["quadgos"].axiom := "-FR" + linden["quadgos"].angle := 90.0 + linden["quadkoch"] := lsys_0l("", table(), 0, 90) + linden["quadkoch"].rewrite["F"] := "F+FF-FF-F-F+F+FF-F-F+F+FF+FF-F" + linden["quadkoch"].axiom := "FX++FX++FX++FX++FX" + linden["quadkoch"].angle := 90.0 + linden["quartet"] := lsys_0l("", table(), 0, 90) + linden["quartet"].rewrite["H"] := "-" + linden["quartet"].rewrite["B"] := "FB+FA-FB-JFBFA" + linden["quartet"].rewrite["J"] := "+" + linden["quartet"].rewrite["A"] := "FBFA+HFA+FB-FA" + linden["quartet"].rewrite["F"] := "" + linden["quartet"].axiom := "FB" + linden["quartet"].angle := 90.0 + linden["quartet"].gener := 8 + linden["sier1"] := lsys_0l("", table(), 0, 90) + linden["sier1"].rewrite["X"] := "+FXF-FXF-FXF+" + linden["sier1"].rewrite["F"] := "FXF" + linden["sier1"].axiom := "F" + linden["sier1"].angle := 120.0 + linden["sier1"].gener := 5 + linden["sier2"] := lsys_0l("", table(), 0, 90) + linden["sier2"].rewrite["X"] := "--FXF++FXF++FXF--" + linden["sier2"].rewrite["F"] := "FF" + linden["sier2"].axiom := "FXF--FF--FF" + linden["sier2"].angle := 60.0 + linden["sier2"].gener := 5 + linden["sier3"] := lsys_0l("", table(), 0, 90) + linden["sier3"].rewrite["F"] := "F[-F]F" + linden["sier3"].axiom := "F-F-F" + linden["sier3"].angle := 120.0 + linden["sier3"].gener := 5 + linden["siersqar"] := lsys_0l("", table(), 0, 90) + linden["siersqar"].rewrite["F"] := "FF+F+F+F+FF" + linden["siersqar"].axiom := "F+F+F+F" + linden["siersqar"].angle := 90.0 + linden["siersqar"].gener := 4 + linden["snoflake"] := lsys_0l("", table(), 0, 90) + linden["snoflake"].rewrite["F"] := "F-F+F+F-F" + linden["snoflake"].axiom := "+F" + linden["snoflake"].gener := 4 + linden["space1"] := lsys_0l("", table(), 0, 90) + linden["space1"].rewrite["X"] := "YFXFY+F+YFXFY-F-XFYFX" + linden["space1"].rewrite["Y"] := "YFXFY-F-XFYFX+F+YFXFY" + linden["space1"].axiom := "X" + linden["space1"].gener := 3 + linden["sphinx"] := lsys_0l("", table(), 0, 90) + linden["sphinx"].rewrite["X"] := "+FF-YFF+FF--FFFXF--YFFFYFFF" + linden["sphinx"].rewrite["G"] := "GG" + linden["sphinx"].rewrite["Y"] := "-FF+XFF-FF++FFFYF++XFFFXFFF" + linden["sphinx"].rewrite["F"] := "GG" + linden["sphinx"].axiom := "X" + linden["sphinx"].angle := 60.0 + linden["sphinx"].gener := 5 + linden["sqgasket"] := lsys_0l("", table(), 0, 90) + linden["sqgasket"].rewrite["X"] := "+FXF+FXF+FXF+FXF" + linden["sqgasket"].rewrite["F"] := "FF" + linden["sqgasket"].axiom := "X" + linden["sqgasket"].angle := 90.0 + linden["sqgasket"].gener := 5 + linden["square"] := lsys_0l("", table(), 0, 90) + linden["square"].rewrite["F"] := "FF+F+F+F+FF" + linden["square"].axiom := "F+F+F+F" + linden["square"].angle := 90.0 + linden["tile"] := lsys_0l("", table(), 0, 90) + linden["tile"].rewrite["X"] := "[F+F+F+F[---X-Y]+++++F++++++++F-F-F-F]" + linden["tile"].rewrite["Y"] := "[F+F+F+F[---Y]+++++F++++++++F-F-F-F]" + linden["tile"].axiom := "X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X" + linden["tile"].angle := 15.0 + linden["tile"].length := 10 + linden["tree"] := lsys_0l("", table(), 0, 90) + linden["tree"].rewrite["X"] := "[-FX]+FX" + linden["tree"].axiom := "+++FX" + linden["tree"].angle := 30.0 + linden["tree"].gener := 8 + linden["tree"].length := 10 + linden["tree1"] := lsys_0l("", table(), 0, 90) + linden["tree1"].rewrite["X"] := "[-FX]+FX" + linden["tree1"].axiom := "+++FX" + linden["tree1"].angle := 30.0 + linden["tree1"].gener := 5 + linden["tree1"].length := 8 + linden["tree2"] := lsys_0l("", table(), 0, 90) + linden["tree2"].rewrite["X"] := "+FY" + linden["tree2"].rewrite["Y"] := "-FX" + linden["tree2"].rewrite["F"] := "FF-[XY]+[XY]" + linden["tree2"].axiom := "++++F" + linden["tree2"].angle := 22.5 + + return linden + +end |