Turtle-Grafik

Bearbeiten
  • mn_eck

 

to n_eck :ecken :laenge
repeat :seiten [rt 360 / :ecken fd :laenge]
end
to mn_eck :ecken :laenge
repeat :ecken [rt 360 / :ecken n_eck :ecken :laenge]
end
  • Zufallslinien
to line
make "ll1 []
make "ll2 []
make "x1 ((random 400) - 200)
make "y1 ((random 400) - 200)
make "x2 ((random 400) - 200)
make "y2 ((random 400) - 200)
make "ll1 lput :x1 :ll1
make "ll1 lput :y1 :ll1
make "ll2 lput :x2 :ll2
make "ll2 lput :y2 :ll2
make "colr random 8
setpc :colr
pu
setpos :ll1
pd
setpos :ll2
end
to lines
repeat 512 [line]
end


Fraktale

Bearbeiten
  • Kock-Kurve und kochsche Schneeflocke
 
Kochsche Schneeflocke
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