Visuel Matematik - L-systemer

L-systemer

Et L-System er egentlig blot et system bestående af et aksiom (starttegn) og en eller flere regler for hvordan tegnene i aksiomet skal transformeres.

Et eksempel på dette er følgende:
Aksiom: [F]--F
Regel: F = |[+F][-F]

Her er den eneste regel at tegnet F transformeres til tegnene |[+F][-F], så hvis vi itererer dette system får vi:
1: [F]--F
2: [|[+F][-F]]--|[+F][-F]
3: [|[+|[+F][-F]][-|[+F][-F]]]--|[+|[+F][-F]][-|[+F][-F]]
4: [|[+|[+|[+F][-F]][-|[+F][-F]]][-|[+|[+F][-F]][-|[+F][-F]]]]--
|[+|[+|[+F][-F]][-|[+F][-F]]][-|[+|[+F][-F]][-|[+F][-F]]]

Disse udtryk kan vi så f.eks. fortolke grafisk som:
F Frem med skridtlængde l - linie tegnes fra start- til slut-position
| Frem med skridtlængde l · αd, hvor d er dybden af iterationen og α er en længdefaktor, linie tegnes fra start- til slut-position.
+ Roter mod uret med fast vinkel δ. Hvis et helt tal står foran "+" så laves dette antal roteringer.
- Roter med uret med fast vinkel φ. Hvis et helt tal står foran "-" så laves dette antal roteringer.
[ Nuværende position gemmes
] Retur til sidst gemte position

Med disse regler bliver ovenstående fire iterationer til følgende grafiske fortolkninger:
(L-systemet starter midt på skærmen med retning op og vinklerne er begge 90°, α er 0.65)
Iteration 1:
Iteration 2:
Iteration 3:
Iteration 4:

Eksempler på L-systemer

H:
Bøjet H:
Y:
Græs 1:
Græs 2:
Græs 3:
Gren:
Busk 1:
Busk 2:
Træ 1:
Træ 2:
Træ 3:
Tæppe 1:
Tæppe 2:
Sierpinskifirkant:
Firkantede spidser:
Koch ø:
Kvadratisk Koch ø:
Sierpinskitrekant:
Sierpinskilabyrint:
Sierpinskipilehoved:
Penrose snefnug:
Penrose fliser:
Dragekurve:

Parametre til eksemplerne

Figur δ φ α l dybde
H: 90900.6520012
Aksiom: [F]--F
Regel: F = |[+F][-F]
Bøjet H: 80800.6517512
Aksiom: [F]--F
Regel: F = |[+F][-F]
Y: 45450.6515012
Aksiom: [F]4-F
Regel: F = |[+F][-F]
Gren: 20200.545010
Aksiom: F
Regel: F = |[-F][+F]
Græs 1: 25250.353008
Aksiom: F
Regel: F = F[-F]F[+F]F
Græs 2: 25250.43507
Aksiom: F
Regel: F = |[-F]|[+F]F
Græs 3: 20200.452808
Aksiom: F
Regel: F = |[-F]|[+F][-F]F
Busk 1: 25250.452306
Aksiom: F
Regel: F = FF+[+F-F-F]-[-F+F+F]
Busk 2: 20200.4530010
Aksiom: F
Regel: F = |[+F]|[-F]+F
Træ 1: 20200.551307
Aksiom: F
Regel:F = |[3-F][3+F]|[--F][++F]|F
Træ 2: 880.51506
Aksiom: F
Regel:F=|[5+F][7-F]-|[4+F][6-F]-|[3+F][5-F]-|F
Træ 3: 20200.652708
Aksiom: F
Regel:F = |[--F][+F]-F
Tæppe 1: 90900.333334506
Aksiom: F-F-F-F
Regel:F = F[F]-F+F[--F]+F-F
Sierpinskifirkant: 90900.333334507
Aksiom: F-F-F-F
Regel:F = FF[-F-F-F]F
Tæppe 2: 90900.333334508
Aksiom: F-F-F-F
Regel:F = F[-F-F]FF
Koch Ø: 60600.333334258
Aksiom: F++F++F
Regel:F = F-F++F-F
Kvadratisk Koch Ø: 90900.333333006
Aksiom: F-F-F-F
Regel:F = F-F+F+FF-F-F+F
Kvadratiske spidser: 550.464506
Aksiom: F18-F18-F18-F
Regel:F = F17-F34+F17-F
Sierpinskitrekant: 60600.55258
Aksiom: F--F--F
Regel:F = F--F--F--GG,
G = GG
Sierpinskilabyrint: 60600.55258
Aksiom: F
Regel:F = [GF][+G3-F][G+G+F],
G = GG
Sierpinskipilehoved: 60600.55008
Aksiom: F
Regel:F = [-G+++F][-G+F][GG--F],
G = GG
Penrose snefnug: 18180.383258
Aksiom: F4-F4-F4-F4-F
Regel:F = F4-F4-F10-F++F4-F
Penrose fliser: 36360.65258
Aksiom: [X]++[X]++[X]++[X]++[X]
Regel: W = YF++ZF4-XF[-YF4-WF]++,
X = +YF--ZF[3-WF--XF]+,
Y = -WF++XF[+++YF++ZF]-,
Z = --YF++++WF[+ZF++++XF]--XF
Drage kurve: 45450.7511018
Aksiom: F
Regel:F = [+F][+G--G4-F],
G = -G++G-