home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / dos / fraktale / fracxtr6.exe / L / PENROSE2.L < prev    next >
Text File  |  1991-08-30  |  9KB  |  299 lines

  1.  
  2. KitesAndDarts { ; by Herb Savage
  3. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  4. ; Roger Penrose's kites and darts
  5.   Angle 10
  6.   Axiom WG+XG+WG+XG+WG+XG+WG+XG+WG+X
  7.   W=[F][++@1.618033989F][++G---@.618033989G|X-Y|G|W]
  8.   X=[F+++@1.618033989F][++@.618033989GZ|X|-G|W]
  9.   Y=[+F][@1.618033989F][+G@.618033989|Y+X]
  10.   Z=[-F][@1.618033989F][@.618033989G--WG|+Z]
  11.   F=
  12.   }
  13.  
  14. KitesAndDartsColor { ; by Herb Savage
  15. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  16. ; Roger Penrose's kites and darts
  17.   Angle 10
  18.   Axiom WG+XG+WG+XG+WG+XG+WG+XG+WG+X
  19.   W=[C10F][++@1.618033989C12F][++G---@.618033989G|X-Y|G|W]
  20.   X=[C10F+++@1.618033989C12F][++@.618033989GZ|X|-G|W]
  21.   Y=[+C10F][@1.618033989C12F][+G@.618033989|Y+X]
  22.   Z=[-C10F][@1.618033989C12F][@.618033989G--WG|+Z]
  23.   F=
  24.   }
  25.  
  26. Penrose1 { ; by Herb Savage
  27. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  28. ; Roger Penrose's rhombuses
  29.   Angle 10
  30.   Axiom +WF--XF---YF--ZF
  31.   W=YF++ZF----XF[-YF----WF]++
  32.   X=+YF--ZF[---WF--XF]+
  33.   Y=-WF++XF[+++YF++ZF]-
  34.   Z=--YF++++WF[+ZF++++XF]--XF
  35.   F=
  36. }
  37.  
  38. Penrose1Color { ; by Herb Savage
  39. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  40. ; Roger Penrose's rhombuses
  41. ; Uses color to show similar lines
  42.   Angle 10
  43.   Axiom +WC10F--XC12F---YC12F--ZC10F
  44.   W=YC12F++ZC10F----XC12F[-YC12F----WC10F]++
  45.   X=+YC12F--ZC10F[---WC10F--XC12F]+
  46.   Y=-WC10F++XC12F[+++YC12F++ZC10F]-
  47.   Z=--YC12F++++WC10F[+ZC10F++++XC12F]--XC12F
  48.   F=
  49.   }
  50.  
  51. Penrose1Forced { ; by Herb Savage
  52. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  53. ; Roger Penrose's rhombuses
  54. ; Uses color to show the edge matching rules to force nonperiodicy
  55.   Angle 10
  56.   Axiom +WC10FC12F--XC11FC10F---YC10FC11F--ZC12FC10F
  57.   W=YC10FC11F++ZC12FC10F----XC11FC10F[-YC10FC11F----WC10FC12F]++
  58.   X=+YC10FC11F--ZC12FC10F[---WC10FC12F--XC11FC10F]+
  59.   Y=-WC10FC12F++XC11FC10F[+++YC10FC11F++ZC12FC10F]-
  60.   Z=--YC10FC11F++++WC10FC12F[+ZC12FC10F++++XC11FC10F]--XC11FC10F
  61.   F=
  62.   C=
  63. }
  64.  
  65. Penrose2 { ; by Herb Savage
  66. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  67. ; Roger Penrose's rhombuses
  68.   Angle 10
  69.   Axiom ++ZF----XF-YF----WF
  70.   W=YF++ZF----XF[-YF----WF]++
  71.   X=+YF--ZF[---WF--XF]+
  72.   Y=-WF++XF[+++YF++ZF]-
  73.   Z=--YF++++WF[+ZF++++XF]--XF
  74.   F=
  75.   }
  76.  
  77. Penrose3 { ; by Herb Savage
  78. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  79. ; Roger Penrose's rhombuses
  80.   Angle 10
  81.   Axiom [X]++[X]++[X]++[X]++[X]
  82.   W=YF++ZF----XF[-YF----WF]++
  83.   X=+YF--ZF[---WF--XF]+
  84.   Y=-WF++XF[+++YF++ZF]-
  85.   Z=--YF++++WF[+ZF++++XF]--XF
  86.   F=
  87.   }
  88.  
  89. Penrose4 { ; by Herb Savage
  90. ; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
  91. ; Roger Penrose's rhombuses
  92.   Angle 10
  93.   Axiom [Y]++[Y]++[Y]++[Y]++[Y]
  94.   W=YF++ZF----XF[-YF----WF]++
  95.   X=+YF--ZF[---WF--XF]+
  96.   Y=-WF++XF[+++YF++ZF]-
  97.   Z=--YF++++WF[+ZF++++XF]--XF
  98.   F=
  99.   }
  100.  
  101. PenroseDouble { ; by Herb Savage
  102. ; This is Penrose3 and Penrose4 superimposed
  103.   Angle 10
  104.   Axiom [X][Y]++[X][Y]++[X][Y]++[X][Y]++[X][Y]
  105.   W=YF++ZF----XF[-YF----WF]++
  106.   X=+YF--ZF[---WF--XF]+
  107.   Y=-WF++XF[+++YF++ZF]-
  108.   Z=--YF++++WF[+ZF++++XF]--XF
  109.   F=
  110.   }
  111.  
  112. PentaPlexity {
  113. ; Manual construction by Roger Penrose as a prelude to his development of
  114. ; the famous Penrose tiles (the kites and darts) that tile the plane
  115. ; only non-periodically.
  116. ; Translated first to a "dragon curve" and finally to an L-system
  117. ; by Joe Saverino.
  118.   Angle 10
  119.   Axiom F++F++F++F++F
  120.   F=F++F++F|F-F++F
  121.   }
  122.  
  123. ; old PentaPlexity:
  124. ; Angle 10
  125. ; Axiom F++F++F++F++Fabxjeabxykabxyelbxyeahxyeabiye
  126. ; F=
  127. ; a=Fabxjea
  128. ; b=++F--bxykab
  129. ; x=++++F----xyelbx
  130. ; y=----F++++yeahxy
  131. ; e=--F++eabiye
  132. ; h=+++++F-----hijxlh
  133. ; i=---F+++ijkyhi
  134. ; j=-F+jkleij
  135. ; k=+F-klhajk
  136. ; l=+++F---lhibkl
  137.  
  138. { Generation of Penrose aperiodic tilings
  139.  
  140. Thanks to Herb Savage, who showed it was possible to generate those tilings
  141. with L-systems and Fractint.
  142.  
  143. Based on decomposition of tilings described in Tilings and Pattern, by
  144. Branko Grunbaum and G.C. Shepard, W.H. Freeman and Company, chapter 10
  145.  
  146. Philippe Hurbain
  147. 49 rue Jules Fossier
  148. 95380 LOUVRES
  149. FRANCE
  150. }
  151.  
  152. Losanges {
  153.            ;; by Philippe Hurbain
  154.            ;; Penrose's rhombuses, generated by decomposition rules
  155.            ;; x generate the fat rhombus, y the thin one
  156.            ;; Individualization of rhombuses allows easy coloring
  157.            ;; 0.618034 is (SQRT(5)-1)/2
  158.   Angle 10
  159.   Axiom x
  160.   x=@.618034+f[|y]--f[|x][|+@.618034g@i.618034x]---[x]f--[y]f
  161.   y=@.618034++[x]f|+f[|y]-[y]f|+f[|x]
  162.   f=g
  163. }
  164.  
  165. PentaColor {
  166.              ;; by Philippe Hurbain
  167.              ;; Simple coloring of Penrose's rhombuses, showing pentagons
  168.   Angle 20
  169.   Axiom c04[x]++++[x]++++[x]++++[x]++++[x]
  170.   x=@.618034++f[c10@1.1755-------f][|y]----f[|x]
  171.   x=[|++@.618034g@i.618034x]------[x]f----[y]f
  172.   y=@.618034++++[x]f|++f[|y]--[y]f|++f[|x]
  173.   f=g
  174. }
  175.  
  176. Penta {
  177.         ;; by Philippe Hurbain
  178.         ;; Same as PentaColor, but showing only the coloring
  179.   Angle 20
  180.   Axiom [x]++++[x]++++[x]++++[x]++++[x]
  181.   x=@.618034++g[@1.1755-------f][|y]----g[|x]
  182.   x=[|++@.618034g@i.618034x]------[x]g----[y]g
  183.   y=@.618034++++[x]g|++g[|y]--[y]g|++g[|x]
  184.   f=g
  185. }
  186.  
  187. Kites&Darts {
  188.               ;; by Philippe Hurbain
  189.               ;; Penrose's kites and darts
  190.               ;; k generates the kite, a generates the dart
  191.   Angle 10
  192.   Axiom k
  193.   k=+[@.618034a]f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  194.   a=[@.618034k]+f@.618034[|a]----f+f----[a]@i.618034f
  195.   f=g
  196. }
  197.  
  198. Kites&Darts2 {
  199.                ;; by Philippe Hurbain
  200.                ;; Penrose's kites and darts, with kites seed
  201.   Angle 10
  202.   Axiom [k]++[k]++[k]++[k]++[k]
  203.   k=+[@.618034a]f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  204.   a=[@.618034k]+f@.618034[|a]----f+f----[a]@i.618034f
  205.   f=g
  206. }
  207.  
  208. Kites&Darts3 {
  209.                ;; by Philippe Hurbain
  210.                ;; Penrose's kites and darts, with darts seed
  211.   Angle 10
  212.   Axiom [a]++[a]++[a]++[a]++[a]
  213.   k=+[@.618034a]f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  214.   a=[@.618034k]+f@.618034[|a]----f+f----[a]@i.618034f
  215.   f=g
  216. }
  217.  
  218. Kites&DartsColor {
  219.                    ;; by Philippe Hurbain
  220.                    ;; Penrose's kites and darts, with serpentine coloring
  221.   Angle 10
  222.   Axiom c4[k]++[k]++[k]++[k]++[k]
  223.   k=+[@.618034a[g---@.618c10f][--g+++@.618c10f]]
  224.   k=f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  225.   a=[@.618034k]+f@.618034[|a][|g++@.382c10f]----f+
  226.   a=f----[a][g--@.382c10f]@i.618034f
  227.   f=g
  228. }
  229.  
  230. AmmannPolyColor {
  231.                   ;; by Philippe Hurbain
  232.                   ;; Ammann's coloring of Penrose's rhombuses, giving an
  233.                   ;; aperiodic tiling of 2 pentagons and 1 hexagon
  234.   Angle 10
  235.   Axiom c1x
  236.   x=@.618034/36[c3\9@.66D]D[c3/196.5@.363D][/180y]\72D[/180x]
  237.   x=[\144@.618034M@i.618034x]\108[c3\36@.509D@1.18\30D][x]D[c3\153@.66D]\72[y]D
  238.   y=@.618034/72[x][c3\36@.509D]D\144[c3\9@.66D]D[/180y][c3/196.5@.363D]
  239.   y=\36[y]D\144D[/180x]
  240.   D=M
  241. }
  242.  
  243. AmmannPoly {
  244.              ;; by Philippe Hurbain
  245.              ;; Same as AmmanPolyColor, showing only the
  246.              ;; pentagon/hexagon tiling
  247.   Angle 10
  248.   Axiom x
  249.   x=@.618034/36[\9@.66D]M[/196.5@.363D][/180y]\72M[/180x]
  250.   x=[\144@.618034M@i.618034x]\108[\36@.509D@1.18\30D][x]M[\153@.66D]\72[y]M
  251.   y=@.618034/72[x][\36@.509D]M\144[\9@.66D]M[/180y][/196.5@.363D]
  252.   y=\36[y]M\144M[/180x]
  253.   D=M
  254. }
  255.  
  256. Stars&PentasColor {
  257.                 ;; by Philippe Hurbain
  258.                 ;; Penrose's stars and pentagon tiling, generated as
  259.                 ;; a coloring of kites and darts
  260.   Angle 20
  261.   Axiom c04k
  262.   k=++[@.618034[g-c10@.5878[f]------ff++++f]a]f@.618034------
  263.   k=[--k]f--f------[--k]@i.618034f[@.618034|a]
  264.   a=[@.618034k]++f@.618034[|[gc10@.5878+++++++f]a]--------f
  265.   a=++f--------[c10g@.5878-------f][a]@i.618034f
  266.   f=g
  267. }
  268.  
  269. Stars&Pentas1 {
  270.                 ;; by Philippe Hurbain
  271.                 ;; Same as Stars&PentasColor, showing only coloring
  272.   Angle 20
  273.   Axiom [k]++++[k]++++[k]++++[k]++++[k]
  274.   k=++[@.618034[g-@.5878[f]------ff++++f]a]g@.618034------
  275.   k=[--k]g--g------[--k]@i.618034g[@.618034|a]
  276.   a=[@.618034k]++g@.618034[|[g@.5878+++++++f]a]--------g
  277.   a=++g--------[g@.5878-------f][a]@i.618034g
  278.   f=g
  279. }
  280.  
  281. Stars&Pentas2  {
  282.                  ;; by Philippe Hurbain
  283.                  ;; Penrose's stars and pentagons, generated from
  284.                  ;; decomposition rules
  285.                  ;; u is the star, v is the boat, w is the thin rhombus
  286.                  ;; x, y and z are the pentagons
  287.   Angle 10
  288.   Axiom u
  289.   u=@.381966[v]F[|y][-u]++F|+[v]F[|y]++F|+[v]F[|y]++F|+
  290.   u=[v]F[|y]++F|+[v]F[|y]++F
  291.   v=@.381966[v]F[|y]++F|+[v]F[|y]-[u]F-F|+[v]F[|y]++F
  292.   w=@.381966G++[u]F|+F-F|+[v]F[|y]
  293.   y=@.381966[x][y][w]F[|!y]++F++[y][w]F[|!y]++F++[z]F
  294.   x=@.381966G++G++[!x][!z]F--[!z]F--[!z]F--[!z]F--[!z]F
  295.   z=@.381966[z][x]F++[z]F++[w][y]F[|!y]++F++[z]F
  296.   F=G
  297. }
  298.  
  299.