⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 penrose.l

📁 frasr200的win 版本源码(18.21),使用make文件,使用的vc版本较低,在我的环境下编译有问题! 很不错的分形程序代码!
💻 L
字号:
{ Generation of Penrose aperiodic tilings

Thanks to Herb Savage, who showed it was possible to generate those tilings
with L-systems and Fractint.

Based on decomposition of tilings described in Tilings and Pattern, by
Branko Gr乶baum and G.C. Shepard, W.H. Freeman and Company, chapter 10

Philippe Hurbain
49 rue Jules Fossier
95380 LOUVRES
FRANCE
}

Penrose1 {
           ;; by Herb Savage
           ;; based on Martin Gardner's "Penrose Tiles to Trapdoor Ciphers",
           ;; Roger Penrose's rhombuses
  Angle 10
  Axiom +WF--XF---YF--ZF
  W=YF++ZF----XF[-YF----WF]++
  X=+YF--ZF[---WF--XF]+
  Y=-WF++XF[+++YF++ZF]-
  Z=--YF++++WF[+ZF++++XF]--XF
  F=
}

Losanges {
           ;; by Philippe Hurbain
           ;; Penrose's rhombuses, generated by decomposition rules
           ;; x generate the fat rhombus, y the thin one
           ;; Individualization of rhombuses allows easy coloring
           ;; 0.618034 is ({5-1)/2
  Angle 10
  Axiom x
  x=@.618034+f[|y]--f[|x][|+@.618034g@i.618034x]---[x]f--[y]f
  y=@.618034++[x]f|+f[|y]-[y]f|+f[|x]
  f=g
}

PentaColor {
             ;; by Philippe Hurbain
             ;; Simple coloring of Penrose's rhombuses, showing pentagons
  Angle 20
  Axiom c04[x]++++[x]++++[x]++++[x]++++[x]
  x=@.618034++f[c10@1.1755-------f][|y]----f[|x]
  x=[|++@.618034g@i.618034x]------[x]f----[y]f
  y=@.618034++++[x]f|++f[|y]--[y]f|++f[|x]
  f=g
}

Penta {
        ;; by Philippe Hurbain
        ;; Same as PentaColor, but showing only the coloring
  Angle 20
  Axiom [x]++++[x]++++[x]++++[x]++++[x]
  x=@.618034++g[@1.1755-------f][|y]----g[|x]
  x=[|++@.618034g@i.618034x]------[x]g----[y]g
  y=@.618034++++[x]g|++g[|y]--[y]g|++g[|x]
  f=g
}


Kites&Darts {
              ;; by Philippe Hurbain
              ;; Penrose's kites and darts
              ;; k generates the kite, a generates the dart
  Angle 10
  Axiom k
  k=+[@.618034a]f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  a=[@.618034k]+f@.618034[|a]----f+f----[a]@i.618034f
  f=g
}

Kites&Darts2 {
               ;; by Philippe Hurbain
               ;; Penrose's kites and darts, with kites seed
  Angle 10
  Axiom [k]++[k]++[k]++[k]++[k]
  k=+[@.618034a]f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  a=[@.618034k]+f@.618034[|a]----f+f----[a]@i.618034f
  f=g
}

Kites&Darts3 {
               ;; by Philippe Hurbain
               ;; Penrose's kites and darts, with darts seed
  Angle 10
  Axiom [a]++[a]++[a]++[a]++[a]
  k=+[@.618034a]f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  a=[@.618034k]+f@.618034[|a]----f+f----[a]@i.618034f
  f=g
}

Kites&DartsColor {
                   ;; by Philippe Hurbain
                   ;; Penrose's kites and darts, with serpentine coloring
  Angle 10
  Axiom c4[k]++[k]++[k]++[k]++[k]
  k=+[@.618034a[g---@.618c10f][--g+++@.618c10f]]
  k=f@.618034---[-k]f-f---[-k]@i.618034f[@.618034|a]
  a=[@.618034k]+f@.618034[|a][|g++@.382c10f]----f+
  a=f----[a][g--@.382c10f]@i.618034f
  f=g
}


AmmannPolyColor {
                  ;; by Philippe Hurbain
                  ;; Ammann's coloring of Penrose's rhombuses, giving an
                  ;; aperiodic tiling of 2 pentagons and 1 hexagon
  Angle 10
  Axiom c1x
  x=@.618034/36[c3\9@.66D]D[c3/196.5@.363D][/180y]\72D[/180x]
  x=[\144@.618034M@i.618034x]\108[c3\36@.509D@1.18\30D][x]D[c3\153@.66D]\72[y]D
  y=@.618034/72[x][c3\36@.509D]D\144[c3\9@.66D]D[/180y][c3/196.5@.363D]
  y=\36[y]D\144D[/180x]
  D=M
}

AmmannPoly {
             ;; by Philippe Hurbain
             ;; Same as AmmanPolyColor, showing only the
             ;; pentagon/hexagon tiling
  Angle 10
  Axiom x
  x=@.618034/36[\9@.66D]M[/196.5@.363D][/180y]\72M[/180x]
  x=[\144@.618034M@i.618034x]\108[\36@.509D@1.18\30D][x]M[\153@.66D]\72[y]M
  y=@.618034/72[x][\36@.509D]M\144[\9@.66D]M[/180y][/196.5@.363D]
  y=\36[y]M\144M[/180x]
  D=M
}

Stars&PentasColor {
                ;; by Philippe Hurbain
                ;; Penrose's stars and pentagon tiling, generated as
                ;; a coloring of kites and darts
  Angle 20
  Axiom c04k
  k=++[@.618034[g-c10@.5878[f]------ff++++f]a]f@.618034------
  k=[--k]f--f------[--k]@i.618034f[@.618034|a]
  a=[@.618034k]++f@.618034[|[gc10@.5878+++++++f]a]--------f
  a=++f--------[c10g@.5878-------f][a]@i.618034f
  f=g
}

Stars&Pentas1 {
                ;; by Philippe Hurbain
                ;; Same as Stars&PentasColor, showing only coloring
  Angle 20
  Axiom [k]++++[k]++++[k]++++[k]++++[k]
  k=++[@.618034[g-@.5878[f]------ff++++f]a]g@.618034------
  k=[--k]g--g------[--k]@i.618034g[@.618034|a]
  a=[@.618034k]++g@.618034[|[g@.5878+++++++f]a]--------g
  a=++g--------[g@.5878-------f][a]@i.618034g
  f=g
}


Stars&Pentas2  {
                 ;; by Philippe Hurbain
                 ;; Penrose's stars and pentagons, generated from
                 ;; decomposition rules
                 ;; u is the star, v is the boat, w is the thin rhombus
                 ;; x, y and z are the pentagons
  Angle 10
  Axiom u
  u=@.381966[v]F[|y][-u]++F|+[v]F[|y]++F|+[v]F[|y]++F|+
  u=[v]F[|y]++F|+[v]F[|y]++F
  v=@.381966[v]F[|y]++F|+[v]F[|y]-[u]F-F|+[v]F[|y]++F
  w=@.381966G++[u]F|+F-F|+[v]F[|y]
  y=@.381966[x][y][w]F[|!y]++F++[y][w]F[|!y]++F++[z]F
  x=@.381966G++G++[!x][!z]F--[!z]F--[!z]F--[!z]F--[!z]F
  z=@.381966[z][x]F++[z]F++[w][y]F[|!y]++F++[z]F
  F=G
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -