Benutzer:Arbol01/Fraktale

Aus Wikibooks
Zur Navigation springen Zur Suche springen
Fraktal L-System Winkel Strecken-Verhältnis Visualisierung
Drachenkurve
F → R oder F → L
R → +R--L+
L → -R++L- 
Drachenkurve
Gosper-Kurve
F → R oder F → L
R → R+L++L-R--RR-L+
L → -R+LL++L+R--R-L
Gosper-Kurve
Hilbert-Kurve
X
X → -YF+XFX+FY-
Y → +XF-YFY-FX+
Hilbert-Kurve
Koch-Flocke
F--F--F
F → F+F--F+F
Kochsche Schneeflocke
Peano-Kurve
X
X → XFYFX+F+YFXFY-F-XFYFX
Y → YFXFY-F-XFYFX+F+YFXFY
Peano-Kurve
Peano-Kurve
F
F → F-F+F+F+F-F-F-F+F
Peano-Kurve
Penta Plexity
F++F++F++F++F
F → F++F++F|F-F++F
Penta Plexity
Pfeilspitze
F → R oder F -> L
R → -L+R+L-
L → +R-L-R+
Pfeilspitzen-Fraktal
Sierpinski-Dreieck
FXF--FF--FF
X → --FXF++FXF++FXF--
F → FF
Sierpinski-Dreieck
Sierpinski-Teppich
F
F → F+F-F-FF-F-F-fF
f → fff
Sierpinski-Teppich

to kurve :stufe :laenge

make "stufe :stufe - 1
make "laenge :laenge / 3
if :stufe > 0 [kurve :stufe :laenge rt 60 kurve :stufe :laenge lt 120 kurve :stufe :laenge rt 60 kurve :stufe :laenge]
if :stufe = 0 [fd :laenge rt 60 fd :laenge lt 120 fd :laenge rt 60 fd :laenge]
end
to flocke :stufe :laenge
repeat 3 [kurve :stufe :laenge lt 120]
end


  • Drachenkurve
Drachenkurve
to dragon :stufe :laenge
dcr :stufe :laenge
end
to dcr :stufe :laenge
make "stufe :stufe - 1
make "laenge :laenge / 1.41421
if :stufe > 0 [rt 45 dcr :stufe :laenge lt 90 dcl :stufe :laenge rt 45]
if :stufe = 0 [rt 45 fd :laenge lt 90 fd :laenge rt 45]
end
to dcl :stufe :laenge
make "stufe :stufe - 1
make "laenge :laenge / 1.41421
if :stufe > 0 [lt 45 dcr :stufe :laenge rt 90 dcl :stufe :laenge lt 45]
if :stufe = 0 [lt 45 fd :laenge rt 90 fd :laenge lt 45]
end


  • Gosperkurve
Gosper-Kurve
to rg :st :ln
make "st :st - 1
make "ln :ln / 2.6457
if :st > 0 [rg :st :ln rt 60 gl :st :ln  rt 120 gl :st :ln lt 60 rg :st :ln lt 120 rg :st :ln rg :st :ln lt 60 gl :st :ln rt 60]
if :st = 0 [fd :ln rt 60 fd :ln rt 120 fd :ln lt 60 fd :ln lt 120 fd :ln fd :ln lt 60 fd :ln rt 60]
end
to gl :st :ln
make "st :st - 1
make "ln :ln / 2.6457
if :st > 0 [lt 60 rg :st :ln rt 60 gl :st :ln gl :st :ln rt 120 gl :st :ln rt 60 rg :st :ln lt 120 rg :st :ln lt 60 gl :st :ln]
if :st = 0 [lt 60 fd :ln rt 60 fd :ln fd :ln rt 120 fd :ln rt 60 fd :ln lt 120 fd :ln lt 60 fd :ln]
end


  • Pfeilspitze
to pfeilspitze :stufe :laenge
rpfeil :stufe :laenge
end
to rpfeil :stufe :laenge
make "stufe :stufe - 1
make "laenge :laenge / 2
if :stufe > 0 [rt 60 lpfeil :stufe :laenge lt 60 rpfeil :stufe :laenge lt 60 lpfeil :stufe :laenge rt 60]
if :stufe = 0 [rt 60 fd :laenge lt 60 fd :laenge lt 60 fd :laenge rt 60]
end
to lpfeil :stufe :laenge
make "stufe :stufe - 1
make "laenge :laenge / 2
if :stufe > 0 [lt 60 rpfeil :stufe :laenge rt 60 lpfeil :stufe :laenge rt 60 rpfeil :stufe :laenge lt 60]
if :stufe = 0 [lt 60 fd :laenge rt 60 fd :laenge rt 60 fd :laenge lt 60]
end
  • Pentaplexity
Penta Plexity
to pepl :stufe :laenge
make "stufe :stufe - 1
make "laenge :laenge / 2.618
if :stufe > 0 [pepl :stufe :laenge rt 72 pepl :stufe :laenge rt 72 pepl :stufe :laenge rt 180 pepl :stufe :laenge lt 36 pepl :stufe :laenge rt 72 pepl :stufe :laenge]
if :stufe = 0 [fd :laenge rt 72 fd :laenge rt 72 fd :laenge rt 180 fd :laenge lt 36 fd :laenge rt 72 fd :laenge]
end
to pp :stufe :laenge
repeat 4 [pepl :stufe :laenge rt 72]
pepl :stufe :laenge
end