module LSystem.Systems where import LSystem.LSystem -- | See http://astronomy.swin.edu.au/~pbourke/fractals/lsys/ l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, lA, lB :: LSystem l0 = lSystem "F+F+F+F" [('F', "F+F-F-FF+F+F-F")] l1 = lSystem "F+F+F+F" [('F', "FF+F-F+F+FF")] l2 = lSystem "X" [('F', "FF") ,('X', "F-[[X]+X]+F[+FX]-X")] l3 = lSystem "a" [('F', ">F<") ,('a', "F[+x]Fb") ,('b', "F[-y]Fa") ,('x', "a") ,('y', "b")] l4 = lSystem "Y" [('X', "X[-FFF][+FFF]FX") ,('Y', "YFX[+Y][-Y]")] l5 = lSystem "F" [('F', "FF+[+F-F-F]-[-F+F+F]")] l6 = lSystem "X" [('F', "FF") ,('X', "F[+X]F[-X]+X")] l7 = lSystem "F" [('F', "F[+FF][-FF]F[-F][+F]F")] l8 = lSystem "F" [('F', "FFF-[XY]+[XY]") ,('X', "+FY") ,('Y', "-FX")] l9 = lSystem "FX" [('X', ">[-FX]+FX")] lA = lSystem "FX" [('Y', "-FX-Y") ,('X', "X+YF+")] lB = lSystem "F+F+F" [('F', "F-F+F")] -- | See http://en.wikipedia.org/wiki/Penrose_tiling lC :: LSystem lC = lSystem "[7]++[7]++[7]++[7]++[7]" [('6', "8F++9F----7F[-8F----6F]++") ,('7', "+8F--9F[---6F--7F]+") ,('8', "-6F++7F[+++8F++9F]-") ,('9', "--8F++++6F[+9F++++7F]--7F") ,('F', "")] -- | See http://darcs.haskell.org/~paolo/darcs/nymphaea/ lD :: LSystem lD = lSystem "F+F+F+F+F+F" [('F', "F-F++F-F")] -- | With turning angle and line scalar. l0d, l1d, l2d, l3d, l4d, l5d, l6d, l7d, l8d, l9d, lAd, lBd, lCd, lDd :: (LSystem, Double, Double) l0d = (l0, 90.0, 1) l1d = (l1, 90.0, 1) l2d = (l2, 22.5, 1) l3d = (l3, 45.0, 1.36) l4d = (l4, 25.7, 1) l5d = (l5, 22.5, 1) l6d = (l6, 20.0, 1) l7d = (l7, 35.0, 1) l8d = (l8, 22.5, 1) l9d = (l9, 40.0, 0.6) lAd = (lA, 90.0, 1) lBd = (lB, 120.0, 1) lCd = (lC, 36.0, 1) lDd = (lD, 60.0, 1) -- Local Variables: -- truncate-lines:t -- End: