Fraktale Definition Wolken sind keine Kugeln, Berge keine Kegel, Küstenlinien keine Kreise. Die Baumrinde ist nicht glatt. Definition: Eine Figur wird.

Slides:



Advertisements
Ähnliche Präsentationen
Inhaltsangabe Der Kosmos der Maya 1. Zeitstrahl 2. Kosmos der Maya
Advertisements

HIPPOKRATES VON CHIOS ( griechischer Mathematiker, um 440 v. Chr.)
Flächen und Umfang Quadrat Einheitsquadrat Umfang Fläche Dreieck
Welches Team ist das? Frankreich.
Woher kommt er / sie?.
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Nimm ein Rechenheft, einen Bleistift das Geodreieck, einen Zirkel und ein Radiergummi zur.
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Nimm ein Rechenheft, einen Bleistift das Geodreieck, einen Zirkel und ein Radiergummi zur.
Dynamik komplexer Systeme
Runde Fraktale Präsentation eines MatLab-Programms von Nele Fröse
HIPPOKRATES VON CHIOS ( griechischer Mathematiker, um 440 v. Chr.)
Interpretation und Isomorphie Bedeutung und Form in der Mathematik.
Einführung in die Mathematikdidaktik
[ CHAOS und FRAKTALE ] Steffi Cordier - Paulina Paszkiewicz - Uli Quitsch Stefan Quint - Johannes Horlemann - Achim Boltz.
„Flächenanlegungen“ Einfache Flächenanlegung, gr. parabolé: eine gegebene Fläche F an eine gegebene Strecke a anlegen (d.h. ein Rechteck mit Seite a.
Projekt - Computergrafik
Wie macht man ein Sudoku? Transformations-Methode:
Thema: Parabeln [ein Bindeglied zwischen Geometrie und Algebra ]
Tetraederzerlegung Ina Ehmann Tetraederzerlegung.
Transversalen im Dreieck
Seminarvortrag: Flächenfraktale
Rekursion Klaus Becker (2002).
den folgenden Aufgaben!!!
Sali zäma.
Proseminar – Geometrie
Foliengestaltung mit Power-Point (Version 10) Eine kleine Einführung
DIE CHAOS-THEORIE Einleitung E Einleitung.
Zum verständlich machen, wozu die Trigger-Funktion geeignet ist,
6. Lange Nacht der Mathematik
Rekursion: Fraktale Folie 2 Binärbaum Übungen Dimension Java Übung
Die Welt der Fraktale Eine Kurzeinführung.
Turtle Grafik mit Logo Mairegger Martin Schroll Hannes.
Maler und Malerinnen überlassen nicht viel dem Zufall.
Also, das ist eine recht einfache Angelegenheit.
Winkel-Dreiecke Elke Schnelle
Lindenmayer-Systeme: Fraktale rekursiv zeichnen
Der Höhensatz des Euklid
Baum-Simulation mit Lindenmayer-System
Berechnung der Kreisfläche
In der Mathematik, Natur und Kunst
Kurze Anleitung zur Bedienung von Careum-Explorer.
Fraktale und iterierte Funktionensysteme
Winkelmessung mal anders...
POCKET TEACHER Mathematik Geometrie
Disziplin 2: Man geht aus von zwei 3er-Stapeln und einem 6er-Stapel
LK-MA - Christopher Schlesiger
Disziplin 1: Man geht aus von drei 3er-Stapeln
Schleifen
Einstieg Sehr geehrte Damen und Herren. Sehr geehrter Herr Friedrich. Wir wollen Ihnen heute die Arbeit der letzten beiden Schuljahre unseres P-Seminars.
Goldener Schnitt O. Lavrova.
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Nimm ein Rechenheft, einen Bleistift das Geodreieck, einen Zirkel und ein Radiergummi zur.
Wie berechnet man ein Dreieck?
Ich fühle mich als. Gibt es gemeinsame europäische Werte und Normen?
Dreieckssätze Pythagoras und Co SFZ 14/15 W.Seyboldt
Kopfgeometrie Baustein 1.
Konstruktion eines Rechtecks
12 Mathematik Lösungen 2011 ZKM 1.
Das Dreieck.
Einheitlicher Auftritt Ein einheitlicher Auftritt als Cevi vereinfacht die Arbeit unserer Bewegung für alle - auch für dich und deine Gruppe.  
Einheitlicher Auftritt Ein einheitlicher Auftritt als Cevi vereinfacht die Arbeit unserer Bewegung für alle - auch für dich und deine Gruppe.  
Russe + in Russin.
Syntaxdiagramme.
Fraktale B E I S P L D =
Fraktale B E I S P L Ausgangsfigur in Stufe 0 ist ein Dreieck
Gegenüberstellung von Euklidscher und Sphärischer Geometrie
Mаtheguru.one Tipps und Lösungen zu Matheaufgaben aus Schulbüchern von der Mittelstufe bis zum Abitur.
Brüche 1/2 1/8 1/3 6/8 3/4.
Fraktale D =
Thema: Flächenberechnung Heute: Einführung und Wiederholung
Kollisionsuntersuchung konvexer Polyeder
Auf der Insel Tortuga ist ein alter Schatz vergraben
 Präsentation transkript:

Fraktale Definition Wolken sind keine Kugeln, Berge keine Kegel, Küstenlinien keine Kreise. Die Baumrinde ist nicht glatt. Definition: Eine Figur wird selbstähnlich genannt, wenn Teile der Figur kleine Kopien der ganzen Figur sind.

Fraktale 1.Englands Küste Wie lang ist die Küste Englands (Norwegens)? Was sagt diese Zei-tungsmeldung aus? Finde heraus, wie lang die beiden Küstenlinien sind. Finde heraus, wie lang die gemeinsame Grenze zwischen Spanien und Portugal ist.

Fraktale 1.Englands Küste

Fraktale 1. Die Kochsche Kurve Die Koch-Kurve erhält man, indem man, ausgehend von einer Strecke, das mittlere Drittel dieser Strecke entfernt und es durch zwei Schenkel eines gleichseitigen Dreiecks ersetzt. Mit den entstehenden Teilstrecken wird dieser Vor-gang unendlich oft wiederholt.

Fraktale 1. Die Kochsche Kurve Die Iteration besteht nun darin, 1. dass alle Linienstücke der Kurve in drei gleichlange Stücke unterteilt werden 2. auf dem jeweils mittleren Stück ein gleichseitiges Dreieck errichtet wird und 3. die Basis dieses Dreiecks (also das ursprüngliche Drittelstück) entfernt wird.

Fraktale 1. Die Kochsche Kurve Mit Hilfe der Turtle- Grafik von LOGO lässt sich die Koch-Kurve einfach rekursiv programmieren. Vorwärts – Links 60 – Vorwärts – Rechts 60 – Rechts 60 – Vorwärts – Links 60 – Vorwärts Diese Befehle werden rekursiv aufgerufen. to koch :stufe : laenge Ifelse :stufe<0 [setpc 1+random 7 fd :laenge][~ koch :stufe-1 :laenge/3 lt 60 koch :stufe-1 :laenge/3 rt 60 rt 60 koch :stufe-1 :laenge/3] end

1.2 Die Kochsche Kurve ohne IFELSE Fraktale Mit Hilfe der Turtle- Grafik von LOGO läßt sich die Koch-Kurve einfach rekursiv programmieren. Vorwärts – Links 60 – Vorwärts – Rechts 60 – Rechts 60 – Vorwärts – Links 60 – Vorwärts Diese Befehle werden rekursiv aufgerufen. Jetzt ohne IFELSE to koch :stufe :laenge If :stufe<0 [fd :laenge stop] koch :stufe-1 :laenge/3 lt 60 koch :stufe-1 :laenge/3 rt 60 rt 60 koch :stufe-1 :laenge/3 end Aufruf(Beispiel) : koch 3 500

1.3 Die Kochsche Kurve ohne IFELSE – Abbruch-bedingung über die Länge Fraktale 1.3 Die Kochsche Kurve ohne IFELSE – Abbruch-bedingung über die Länge Mit Hilfe der Turtle- Grafik von LOGO lässt sich die Koch-Kurve einfach rekursiv programmieren. Vorwärts – Links 60 – Vorwärts – Rechts 60 – Rechts 60 – Vorwärts – Links 60 – Vorwärts Diese Befehle werden rekursiv aufgerufen. Jetzt ohne IFELSE to koch :laenge if :laenge<0 [fd :laenge stop] koch :laenge/3 lt 60 koch :laenge/3 rt 60 rt 60 koch :laenge/3 end

1.4 Die Kochsche Kurve Animation mit Gifsave Fraktale Die Entstehung der Kochschen Kurve kann mit Hilfe von gifsave als Animation dargestellt werden. (Abbruch über die Länge) to koch :laenge if :laenge<10 [ fd :laenge (gifsave "koch.gif 0 :append 0) make "append "true stop] koch :laenge/3 lt 60 koch :laenge/3 rt 60 rt 60 koch :laenge/3 end to main cs setpensize[4 4] rt 90 pu bk 400 pd setactivearea[-450 -10 450 300] make "append "false koch 800 end

1.5 Die Kochsche Kurve Animation mit Gifsave Fraktale Die Entstehung der Kochschen Kurve kann mit Hilfe von gifsave als Animation dargestellt werden.

Die verschiedenen Versionen der fraktalen Kurven Die Abbruchbedingung für die Fraktale kann einmal über die Länge der Strecken gesteuert werden, zum anderen ist es möglich, dafür die Iterationsstufe zu nehmen. Weiterhin sollen noch zwei anderen Versionen hinzugefügt werden. Die Strecken können mit Hilfe der random-Funktion und dem Befehl setpc unterschiedlich gefärbt werden und es ist möglich mit Hilfe von gifsave die Fraktale zu animieren. Diese Möglichkeiten sollen im Folgenden exemplarisch für alle möglichen fraktalen Kurven dargestellt werden. 1. Steuerung über die Länge der Strecke to Fraktal :laenge if :laenge<50 [fd :laenge stop] Fraktal :laenge/3 … die rekursiven Aufrufe ….. end Der Aufruf: Fraktal 600 ergibt die Darstellung der fraktalen Kurve bis die Länge weniger als 50 Pixel hat.

Die verschiedenen Versionen der fraktalen Kurven 2. Steuerung über die Iterationsstufe to Fraktal :stufe :laenge if :stufe<1 [fd :laenge stop] Fraktal :stufe-1 :laenge/3 … die rekursiven Aufrufe ….. end Der Aufruf: Fraktal 2 600 ergibt die Darstellung von 2 Iterationsstufen

Die verschiedenen Versionen der fraktalen Kurven 3. Steuerung über die Iterationsstufe und unterschiedliche Farben der einzelnen Strecken to Fraktal :stufe :laenge if :stufe<1 [setpc 1+random 7 fd :laenge stop] Fraktal :stufe-1 :laenge/3 … die rekursiven Aufrufe ….. end Der Aufruf: Fraktal 2 600 ergibt die Darstellung von 2 Iterationsstufen mit unterschiedlichen Farben (hier sind es 8 Farben)

Die verschiedenen Versionen der fraktalen Kurven 4. Steuerung über die Iterationsstufe und Animation der fraktalen Kurve (mit einer Farbe) to Fraktal :stufe :laenge if :stufe<1 [fd :laenge (gifsave „Fraktal.gif 0 :append 0) make "append "true stop] Fraktal :stufe-1 :laenge/3 … die rekursiven Aufrufe ….. end (1) to main (2) cs setpensize[4 4] (3) rt 90 pu bk 400 pd (4) setactivearea[-450 -300 450 300] (5) make "append "false (6) Fraktal 5 600 (7) end Der Aufruf: Fraktal 5 600 ergibt eine Animation über 5 Iterationsstufen. Im main-Pro-gramm müssen 2 Zeilen einge-fügt werden (Zeile 4 und 5)

Die verschiedenen Versionen der fraktalen Kurven 5. Steuerung über die Länge und Animation der fraktalen Kurve (mit einer Farbe) to Fraktal :laenge if :laenge<10 [fd :laenge (gifsave „Fraktal.gif 0 :append 0) make "append "true stop] Fraktal :laenge/3 … die rekursiven Aufrufe ….. end (1) to main (2) cs setpensize[4 4] (3) rt 90 pu bk 400 pd (4) setactivearea[-450 -300 450 300] (5) make "append "false (6) Fraktal 600 (7) end Der Aufruf: Fraktal 5 600 ergibt eine Animation über 5 Iterationsstufen. Im main-Pro-gramm müssen 2 Zeilen einge-fügt werden (Zeile 4 und 5)

Fraktale 2. Die Kreuzstich Kurve Die Kreuzstichkurve stammt von T. Vicsek (Ungarn). Sie hat den nebenstehenden Generator und kann deshalb als koch-ähnlich angesehen werden. Bei der Drittelung ergeben sich hier 5 neue Teilstrecken T. Vicsek

2.1 Die Kreuzstich Kurve – Steuerung über die Iterationsstufe Fraktale 2.1 Die Kreuzstich Kurve – Steuerung über die Iterationsstufe to kreuz :stufe :laenge if :stufe<1[setpc 1+random 7 fd :laenge] kreuz :stufe-1 :laenge/3 lt 90 kreuz :stufe-1 :laenge/3 rt 90 kreuz :stufe-1 :laenge/3 end

2.2 Die Kreuzstich Kurve - Steuerung über die Länge Fraktale 2.2 Die Kreuzstich Kurve - Steuerung über die Länge to kreuz :laenge if :laenge<10[fd :laenge stop] kreuz :laenge/3 lt 90 kreuz :laenge/3 rt 90 kreuz :laenge/3 end

2.3 Die Kreuzstich Kurve - Animaton mit GifSave Fraktale 2.3 Die Kreuzstich Kurve - Animaton mit GifSave to kreuz :laenge if :laenge<10 [fd :laenge (gifsave „Fraktal.gif 0 :append 0) make "append "true stop] kreuz :laenge/3 lt 90 kreuz :laenge/3 rt 90 kreuz :laenge/3 end to main cs setpensize[4 4] rt 90 pu bk 400 pd setactivearea[-450 -10 450 300] make "append "false kreuz 800 end

3.1 Kochähnliche Kurve – Steuerung über die Kurvenlänge Fraktale 3.1 Kochähnliche Kurve – Steuerung über die Kurvenlänge to koch1 :laenge if :laenge<100[fd :laenge stop] koch1 :laenge/4 rt 60 koch1 :laenge/4 lt 60 lt 60 koch1 :laenge/4 koch1 :laenge/4 rt 60 rt 60 koch1 :laenge/4 lt 60 end Ausgangselement ist wieder eine Strecke, die dieses Mal in 4 gleiche Teile geteilt wird. Die beiden Dreiecke sind gleichseitig. Dargestellt ist der 1. Iterationsschritt. Man erkennt 6 Teilstücke – also auch 6 rekursive Aufrufe.

3.2 Kochähnliche Kurve- Steuerung über Iterationsstufe Fraktale 3.2 Kochähnliche Kurve- Steuerung über Iterationsstufe to koch1Stufe :stufe :laenge if :stufe<1[FD :laenge stop] koch1Stufe :stufe-1 :laenge/4 rt 60 koch1Stufe :stufe-1 :laenge/4 lt 60 lt 60 koch1Stufe :stufe-1 :laenge/4 koch1Stufe :stufe-1 :laenge/4 rt 60 rt 60 koch1Stufe :stufe-1 :laenge/4 lt 60 end Iterationsstufe 3

Fraktale 4.1 Kochähnliche Kurve- die Zwillingskurve - Steuerung über die Iterationsstufe to zwillingStufe :stufe :laenge if :stufe<1[ FD :laenge stop] lt 45 zwillingStufe :stufe-1 :laenge*0.353553 rt 90 zwillingStufe :stufe-1 :laenge*0.353553 lt 90 rt 45 end Ausgangselement - Iterationsstufe 1

4.2 Kochähnliche Kurve- die Zwillingskurve - Steuerung über die Länge Fraktale 4.2 Kochähnliche Kurve- die Zwillingskurve - Steuerung über die Länge to zwilling :laenge if :laenge<80[ FD :laenge stop] lt 45 zwilling :laenge*0.353553 rt 90 zwilling :laenge*0.353553 lt 90 zwilling :laenge*0.353553 rt 45 end Iterationsstufe 4

5.1 Die Peano - Kurve – Ifelse – Abbruch über die Iterationsstufe Fraktale 5.1 Die Peano - Kurve – Ifelse – Abbruch über die Iterationsstufe to peano :stufe :laenge Ifelse :stufe<1[setpc 1+random 7 FD :laenge][peano :stufe-1 :laenge/3 LT 90 peano :stufe-1 :laenge/3 RT 90 peano :stufe-1 :laenge/3 RT 90 peano :stufe-1 :laenge/3] end

5.2 Die Peano-Kurve - Abbruch über die Iterationsstufe – mit If Fraktale 5.2 Die Peano-Kurve - Abbruch über die Iterationsstufe – mit If to peano :stufe :laenge If :stufe<1[FD :laenge stop] peano :stufe-1 :laenge/3 LT 90 peano :stufe-1 :laenge/3 RT 90 peano :stufe-1 :laenge/3 end

5.2 Die Peano-Kurve - Animation – Abbruch über die Iterationsstufe Fraktale 5.2 Die Peano-Kurve - Animation – Abbruch über die Iterationsstufe to peanoGif :stufe :laenge If :stufe<1[setpc 1+random 7 FD :laenge (gifsave "Peano.gif 0 :append 0) make "append "true stop] peanoGif :stufe-1 :laenge/3 LT 90 peanoGif :stufe-1 :laenge/3 RT 90 peanoGif :stufe-1 :laenge/3 end to main cs setpensize[4 4] rt 90 pu bk 400 pd setactivearea[-450 -300 450 300] make "append "false peanoGif 2 400 end

5.3 Die Peano-Kurve - Animation – Abbruch über die Iterationsstufe Fraktale 5.3 Die Peano-Kurve - Animation – Abbruch über die Iterationsstufe Iterationsstufe 1

5.4 Die Peano-Kurve - Animation – Abbruch über die Iterationsstufe Fraktale 5.4 Die Peano-Kurve - Animation – Abbruch über die Iterationsstufe Iterationsstufe 2

Fraktale 5.5 Die Peano Kurve

Fraktale 5.6 Die Peano Kurve Peano

Fraktale 6.1 Die Drachenkurve to dragon :level :turn :size if :level<1 [setpc 1+random 7 fd :size stop] dragon :level-1 90 :size rt : turn dragon :level-1 -90 :size end

Fraktale 7.1 Die Kochinsel Kurve to Kochinsel :stufe :laenge If :stufe<0 [ FD :laenge stop] kochinsel :stufe-1 :laenge/4 LT 90 kochinsel :stufe-1 :laenge/4 RT 90 kochinsel :stufe-1 :laenge/4 end

Fraktale 7.2 Die Kochinsel

Fraktale 7.2 Die Kochinsel to KochInsel :laenge :stufe repeat 4[KochIsland :laenge :stufe rt 90] end to KochIsland :laenge :stufe If :stufe<0 [fd :laenge stop] KochIsland :laenge/4 :stufe-1 Lt 90 KochIsland :laenge/4 :stufe-1 Rt 90 KochIsland :laenge/4 :stufe-1 to main cs setpensize[2 2] home pu bk 100 rt 90 bk 200 lt 90 pd KochInsel 300 3 Nimmt man jetzt als erstes Element ein Quadrat und wendet auf jede der 4 Seiten den rekursiven Algorithmus an, so erhält man ähnlich wie bei der Kochschen Schneeflocke eine geschlossene Kurve.

Fraktale 7.2 Die Kochinsel Stufe 3 Stufe 1 Stufe 2

Fraktale 7.2 Die Kochinsel Mathematische Betrachtungen Stufe Anzahl der Segmente Länge eines Segments Umfang Fläche 1 4 1 s 4 s A 2 32 ¼ s 8 s 3 256 1/16 s 16 s n (8)n/2 (1/4)n-1*s Ergebnis: Die Länge der Kurve ist unendlich, die eingeschlossene Fläche ist endlich und ändert sich nicht.

Fraktale 8.1 Der Sierpinski-Teppich Das Ausgangselement ist wieder eine Strecke beliebiger Länge. Diese wird jetzt in drei gleiche Teile geteilt und, wie in der 1. Iterationsstufe gezeigt, im Sinne der Zahlenwerte durchlaufen. Dabei werden die Strecken 2, 3 und 4 zweimal gezeichnet.

Fraktale 8.2 Der Sierpinski-Teppich to SierpinskiTeppich :stufe :laenge if :stufe<1[wait 0 fd :laenge stop] SierpinskiTeppich :stufe-1 :laenge/3 lt 90 SierpinskiTeppich :stufe-1 :laenge/3 rt 90 SierpinskiTeppich :stufe-1 :laenge/3 end to main cs setpensize[5 5] setpc[0 0 255] rt 45 SierpinskiTeppich 1 500 end

Fraktale 8.3 Der Sierpinski-Teppich

Fraktale 8.4 Der Sierpinski-Teppich Mathematische Betrachtungen Stufe Seitenlänge Umfang Totale Fläche Gelöschte Fläche 1 S 4s A 2 (1/3)*s 4s+(4/3)s=5.33s (8/9)*A (1/9)*A 3 (1/9)*s 4s+(4/3)s+8*(4/9)s =8.89s (8/9)2*A A*[(1/9)+(8/81)] 4 (1/3)n-1*s 4s[1+(1/3)+8*(1/9)+82*(1/27)+..+8n-2 * (1/3)n-1] (8/9)n-1*A A[(1/9)+8(1/9)2+ 82(1/9)3+..+8n-2 (1/9)n-1]

Fraktale 9.1 Das sog. Kreuz-Fraktal Ausgehend von einem Quadrat werden auf jeder der Quadratseiten Kreuze entsprechend der Abbildung errichtet.

Fraktale 9.2 Das sog. Kreuz-Fraktal to KreuzFraktal :stufe :laenge if :stufe<1[setpc 1+random 7 fd :laenge stop] KreuzFraktal :stufe-1 :laenge/3 lt 90 KreuzFraktal :stufe-1 :laenge/3 rt 90 KreuzFraktal :stufe-1 :laenge/3 end to main cs setpensize[5 5] setfc[10 10 10]fill repeat 4[ KreuzFraktal 1 170 right 90] end

Fraktale 9.3 Das sog. Kreuz-Fraktal Stufe 1 Stufe 2 Stufe 3

Fraktale 10.1 Das H-Fraktal to HFraktal :stufe :laenge if :stufe<1[ stop] fd :laenge lt 90 HFraktal :stufe-1 :laenge*(1/Sqrt 2) lt 90 fd 2*:laenge lt 90 lt 90 fd :laenge end to main cs setpensize[4 4] rt 90 HFraktal 8 200 end

Fraktale 10.2 Das H-Fraktal Stufe 2 Stufe 4 Stufe 6

Fraktale 10.3 Das H-Fraktal Stufe 8 Stufe 10

Fraktale 10.4 Das H-Fraktal to HFraktalGifSave :stufe :laenge if :stufe<1[ stop] fd :laenge lt 90 HFraktalGifSave :stufe-1 :laenge*(1/Sqrt 2) lt 90 setpc 1+random 7 fd 2*:laenge (gifsave "HFraktal.gif 0 :append 0) make "append "true lt 90 lt 90 setpc 1+random 7 fd :laenge end to main cs setpensize[4 4] rt 90 setfc[10 10 10]fill setactivearea[-500 -400 500 400] make "append "false HFraktalGifSave 8 200 end

Fraktale 10.5 Das H-Fraktal Gif-Animation

Anzahl der neuen Segmente Totale Länge der H-Kurve Fraktale 10.6 Das H-Fraktal Mathematische Betrachtungen Stufe Seitenlänge Anzahl der neuen Segmente Totale Länge der H-Kurve 1 s 1 s 2 0.71 s 1.42 s 3 0.5 s 4 3.42 s 0.36 s 8 6.3 s n (0.71)n-1*s 2n-1 0.710 s + 2(0.71)1 s + 4 (0.71)2 s+ 8(0.71)3 s + .. + (2n-1)(0.71)n-1 s

Fraktale Das 3-Sterne-Fraktal Ausgehend vom Mittelpunkt wer-den in 3 Richtungen, die jeweils einen Winkel von 120o bilden, Strecken einer vorgegebenen Län-ge gezeichnet. Das Ende dieser Strecken ist wieder Ausgangs-punkt für die nächsten 3 Strecken, die jetzt aber die halbe Länge besitzen.

Fraktale Das 3-Sterne-Fraktal Stufe 3 to dreistern :laenge :stufe if :stufe<0 [stop] fd :laenge dreistern :laenge/2 :stufe-1 bk :laenge lt 120 end to main cs setpensize[5 5] pd dreistern 200 1 end Stufe 3

Fraktale Das 3-Sterne-Fraktal Stufe 5

Fraktale Das 5-Sterne-Fraktal Ausgehend vom Mittelpunkt werden in 5 Richtungen, die jeweils einen Winkel von 72o bilden, Strecken einer vorgegebenen Länge gezeich-net. Das Ende dieser Strecken ist wieder Ausgangspunkt für die nächsten 5 Strecken, die jetzt aber ein Drittel der Länge besitzen.

Fraktale Das 5-Sterne-Fraktal Stufe 3 to main cs setpensize[5 5] pd to fuenfstern :laenge :stufe if :stufe<0 [stop] fd :laenge fuenfstern :laenge/3 :stufe-1 bk :laenge lt 72 end to main cs setpensize[5 5] pd fuenfstern 200 1 end Stufe 3

Fraktale Das 5-Sterne-Fraktal Stufe 5

Fraktale Die Sierpinski-Kurve Stufe 1 und 2 to main cs pu lt 90 bk 300 pd setpensize[3 3] SierpinskiKurve 20 4 end to SierpinskiKurve :laenge :stufe If :stufe<0 [stop] SierpinskiKurve :laenge :stufe-1 rt 90 SierpinskiKurve :laenge :stufe-1 lt 90 fd :laenge lt 90 SierpinskiKurve :laenge :stufe-1 Stufe 1 und 2

Fraktale Die Sierpinski-Kurve Stufe 3 und 4

Fraktale Die Hilbert-Kurve to Hilbert1 :laenge :stufe :par If :stufe<0 [stop] lt :par*90 hilbert1 :laenge :stufe-1 (0-:par) fd :laenge rt :par*90 hilbert1 :laenge :stufe-1 :par fd :laenge rt :par*90 fd :laenge end to main cs setpensize[3 3] hilbert1 10 4 1 end

Fraktale Die Hilbert-Kurve Stufe 1 Stufe 2 Stufe 3

Fraktale Die Hilbert-Kurve Stufe 4

Fraktale Die Fraktal-Kurve (??) to main cs setpensize[3 3] pfla 80 3 end to pfla :laenge :stufe If :stufe<0 [stop] repeat 4[fd :laenge rt 180 pfla :laenge/2 :stufe-1 rt 180 fd :laenge wait 3 rt 90] Stufe 4

Fraktale Die Fraktal-Kurve (??) Stufe 2 Stufe 1 Stufe 4 Stufe 3

Fraktale Rekursive Dreiecke to main cs setpensize[3 3] dreiecke1 150 4 to dreiecke1 :laenge :stufe If :stufe<0 [stop] rt 30 fd :laenge lt 60 fd :laenge rt 30 dreiecke1 :laenge/2 :stufe-1 lt 150 fd :laenge lt 60 fd :laenge lt 150 lt 120 end to main cs setpensize[3 3] dreiecke1 150 4 end

Fraktale Rekursive Dreiecke Ausgangselement Stufe 2 Stufe 1 Stufe 4

Fraktale SternFraktal to SternFraktal :laenge :stufe If :stufe<0 [stop] repeat 5[rt 54 fd :laenge rt 162 SternFraktal :laenge/3 :stufe-1 ~ lt 18 fd :laenge lt 126] end to main cs setpensize[3 3] SternFraktal 150 3 end An die Ecken eines fünfstrahligen Sternes werden rekursiv wieder fünfstrahlige Sterne angefügt

Fraktale SternFraktal Ausgangselement Stufe 1 Stufe 2 Stufe 3

Fraktale Die Länge der Kochschen Kurve Die Länge des Ausgangs-striches sei 1. Dann ist bei der 1. Stufe jede einzelne Länge 1/3. Bei der 2. Stufe ist jede einzelne Länge (1/3) *(1/3) = (1/3)2 Bei der 3. Stufe also: (1/3)3 Bei der n.- Stufe also: (1/3)n

Fraktale Die Länge der Kochschen Kurve Die Anzahl der Seiten vervierfacht sich bei jedem Schritt, also: 41, 42, 43, 4n Damit ergibt sich für die gesamte Länge: Dieser Ausdruck wächst mit zunehmendem n über alle Grenzen. Das bedeutet letztendlich, dass die Länge der Kochkurve unendlich ist.

Fraktale Die Kochsche Schneeflocke Die Kochsche Schneeflocke entsteht, wenn nach dem Zeichnen der ersten Koch-Kurve eine Rechtsdrehung um 120 Grad erfolgt. to flocke :size :stufe repeat 3[koch :size :stufe rt 120] end

Fraktale Die Kochsche Schneeflocke Animation

Fraktale Die Kochsche AntiSchneeflocke to koch :laenge :stufe If :stufe<0 [fd :laenge stop] koch :laenge/3 :stufe-1 LT 60 koch :laenge/3 :stufe-1 RT 60 RT 60 koch :laenge/3 :stufe-1 end Dreht man jetzt nicht nach rechts sondern nach links, so erhält man interessanterweise ein völlig anderes Fraktal. to AntiSchneeflocke :laenge :stufe lt 30 repeat 3[koch :laenge :stufe lt 120] end to main cs setpensize[3 3] home pu bk 100 rt 90 fd 200 lt 90 pd ;;damit die ganze Graphik angezeigt wird AntiSchneeflocke 600 3

Fraktale Die Kochsche AntiSchneeflocke Stufe 3 Ausgangselement Stufe 1

Anzahl der neuen Segmente Fraktale Die Kochsche AntiSchneeflocke Mathematische Betrachtungen Stufe Seitenlänge Anzahl der neuen Segmente Totale Länge der Kurve Fläche 1 1s 3 3 s A 2 1/3 s 12 4 s A- 1/3 A 1/9 s 48 48/9 s = 5,33 s A-1/3 A – 4/27 A 4 1/27 s 192 64/9 s = 7,11 s A-1/3 A – 4/27 A – 48 (1/729) A n (1/3)n-1*s (3)4)n-1 (3)(1/3)n-1 (4)n-1 s A- 1/3 A* (1+4/9+(4/9)2+…+(4/9)n)

Fraktale Die Kochsche Schneeflocke Der Umfang Der Umfang der Kochschen Schneeflocke Wie in Folie 56 schon gezeigt wurde, ist die Länge der Kochschen Kurve: Da die Kochsche Schneeflocke aus drei Stücken der Kochschen Kurve besteht, erhält man jetzt für die Länge des Umfangs: Der Umfang hat natürlich auch hier einen unendlichen Wert, da gilt:

Fraktale Die Kochsche Schneeflocke Der Flächeninhalt Stufe 0: Das gleichseitige Dreieck habe die Seitenlänge 1. Damit erhält man für den Flächeninhalt: Stufe 1: Hier werden die Flächeninhalte von drei Dreiecken addiert. Jeder Flächeninhalt eines solchen Dreiecks ist 1/9 des Flächeninhalts des Ausgangsdreiecks. Es ergibt sich also:

Fraktale Die Kochsche Schneeflocke Der Flächeninhalt Die Flächeninhalte der Dreiecke, die hinzugefügt werden, ist jeweils 1/9 des Flächeninhalts der Dreiecke, die auf der Stufe zuvor hinzugefügt wurden. In der 2. Stufe werden 34 Dreiecke hinzugefügt. Für den Flächeninhalt ergibt sich also: In der 3. Stufe werden 316 Dreiecke hinzugefügt, also:

Fraktale Die Kochsche Schneeflocke Der Flächeninhalt Für die n-te Stufe ergibt sich dann: Mit Hilfe der vollständigen Induktion kann man zeigen: Setzt man das Ergebnis in A(n) ein, so erhält man:

Fraktale Die Kochsche Schneeflocke Der Flächeninhalt Setzt man das Ergebnis in A(n) ein, so erhält man:

Fraktale Die Kochsche Schneeflocke Der Flächeninhalt Der Bruchterm hat einen Grenzwert, dieser lautet: Damit ergibt sich insgesamt für A(n ): Man hat es also bei der Kochschen-Schneeflocke mit einer endlichen Fläche zu tun, obwohl der Umfang einen unendlichen Wert annimmt.

Fraktale Die Kochsche Schneeflocke Der Flächeninhalt Nimmt man a als Länge des Ausgangsdreiecks, so erhält man für die gesamte Fläche in Abhängigkeit von der Seitenlänge des ersten Dreiecks Dieses ist natürlich für einen bestimmten Zahlenwert a ein endlicher Wert.

Bäume Der Binärbaum – mit IFELSE to Baum1 :laenge ifelse :laenge<10 [stop][FD :laenge RT 45 baum1 :laenge/2 LT 90 BK :laenge] end to main clearscreen setfc [0 0 0] fill setpensize[4 4] penup Back 150 pendown baum1 200 end

Bäume Der Binärbaum – mit IF to Baum1 :laenge if :laenge<10 [setpc 1+random 7 stop] FD :laenge RT 45 baum1 :laenge/2 LT 90 BK :laenge end to main clearscreen setfc [0 0 0] fill setpensize[4 4] baum1 200 end Der Baum besteht aus einem Stamm mit der Länge :laenge, der an-schließend unter 45o nach rechts bzw. links durch zwei Zweige mit der Länge :laenge/2 fortgesetzt wird, an jeden Zweig schließen unter 45o wieder zwei Zweige an usw.

Bäume Der Binärbaum – mit IF to Baum2 :laenge if :laenge>10 [setpc 1+random 7 FD :laenge RT 30 baum2 :laenge*0.8 LT 90 baum2 :laenge*0.6 RT 60 BK :laenge] end to main clearscreen setfc [0 0 0] fill setpensize[4 4] baum2 200 end Wenn man die Winkel bei der Rechtsdrehung verändert (die Summe muss 90o ergeben), erhält man einen leicht unsymmetrischen Baum. Zusätzlich kann man noch die Länge der linken bzw. rechten Äste mit einem unterschiedlichen Faktor verkleinern.

Bäume Baum mit vier Ästen to Baum :laenge :stufe if :stufe<1[setpc 1+random 7 stop] lt 25 fd :laenge Baum .5*:laenge :stufe-1 bk :laenge rt 20 fd 0.6*:laenge Baum 0.6*:laenge :stufe-1 bk 0.6*:laenge rt 25 fd 0.5*:laenge Baum 0.6*:laenge :stufe-1 bk 0.5*:laenge Baum 0.6*:laenge :stufe-1 bk 0.5*:laenge lt 45 end

Bäume Der verzweigte Baum to baum :laenge ifelse :laenge<15 [forward :laenge back :laenge stop][ setpc 1+random 7 forward :laenge/3 left 30 baum :laenge*2/3 right 30 forward :laenge/6 right 25 baum :laenge/2 left 25 back :laenge] end

Bäume Der verzweigte Baum – mit IF to baum :laenge if :laenge<15 [stop] forward :laenge back :laenge setpc 1+random 7 forward :laenge/3 left 30 baum :laenge*2/3 right 30 forward :laenge/6 right 25 baum :laenge/2 left 25 back :laenge end

Bäume Der symmetrische Pythagoras Baum Die bekannten Pythagoras-Bäume gehen zurück auf den holländischen Ingenieur Bosmann. Er entwarf diese während des 2. Weltkrieges an dem Zeichenbrett, an dem er sonst seine U-Boot-Pläne zeichnete. Die Abbildung beruht auf der Figur des Pythagoras-Lehrsatzes. Die beiden Katheten des rechtwinkligen Dreiecks dienen als Verzweigung.

Bäume Der symmetrische Pythagoras Baum Man geht dazu aus von der Figur zum Satz von Pythagoras, also von einem rechtwinkeligen Dreieck, dessen Seiten jeweils die Basis eines nach außen zu gezeichneten Quadrates sind. Dann stellt man sich vor, dass die Kathetenquadrate wieder Hypotenusenquadrat einer weitern derartigen Figur sind usw.

Bäume Der symmetrische Pythagoras Baum to pyth1 :laenge quadrat :laenge if :laenge<30 [RT 90 FD :laenge stop] setpc 1+random 7 wait 30 FD :laenge LT 45 pyth1 :laenge*Cos 45 pyth1 :laenge*Sin 45 RT 45 setpc 1+random 7 wait 30 FD :laenge LT 90 end

Bäume Der unsymmetrische Pythagoras Baum to pyth2 :laenge quadrat :laenge if :laenge<40 [RT 90 FD :laenge stop] setpc 1+random 7 wait 60 FD :laenge LT 30 pyth2 :laenge*Cos 30 pyth2 :laenge*Sin 30 RT 30 setpc 1+random 7 wait 60 LT 90 end

Bäume Der unsymmetrische Pythagoras Baum Auch hier lassen sich viele nette Rech-nungen anstellen, wobei man sich aller-dings, um allzu komplizierte Ausdrücke zu vermeiden, auf den 45°-Fall be-schränken sollte. Hier erhält man bei-spielsweise als Gesamthöhe der Figur, die Gesamtflächen aller pro Stufe hinzu-kommenden Quadrate ist c2, die Umfän-ge der jeweils hinzukommenden neuen Figuren bilden eine geometrische Reihe mit dem Quotienten 2, daher hat die Figur insgesamt einen unendlichen Um-fang, zeichnet man die aufgesetzten Quadrate nur nach einer Seite, ist der Quotient 1/  2 und die Reihe hat daher eine endliche Summe.

Sträucher Unsymmetrischer Strauch to busch :laenge :stufe if :stufe=0 [stop] fd :laenge lt 40 busch :laenge/3.5 :stufe-1 rt 55 busch :laenge/2 :stufe-1 rt 50 busch :laenge/2.5 :stufe-1 lt 65 bk :laenge end Ein Strauch mit drei Verzweigungen erfordert natürlich auch drei Selbst-aufrufe des Programms. Verändert man dann noch die Winkel und die Längenverkürzung, so sieht der Baum schon aus wie ein Strauch.

Sträucher to tree1 :size if :size<5[fd :size back :size stop] left 30 tree1 :size*2/3 right 30 fd :size/6 right 25 tree1 :size/2 left 25 back :size end

Der Farn Aufruf mit: go to Farn :Size If :Size < 5 [Stop] Forward :Size / 20 Left 80 Farn :Size * 0.3 Right 82 Forward :Size / 20 Right 80 Farn :Size * 0.3 Left 78 Farn :Size * 0.9 Left 2 Back :Size / 20 End to Go New SetPos [-50 -170] PenDown Farn 640 to New Cs SetSC[0 0 0] SetPC[0 255 0] PenUp HideTurtle Aufruf mit: go

Fraktale Der Fluch des Pharaos (oder das Chaos-Spiel) Im Königsdreieck (alle Seiten sind gleich lang), das sich zwischen drei Pyramiden erstreckt, befinden sich irgendwo unter dem Staub der Jahrtausende der Eingang zur Grabkammer des Pharaos Tutramses. Schon viele Schatzsucher haben sich aufgemacht, das Grab zu finden und nach den kostbaren Grabbeigaben zu schürfen. Vergeblich! Der Fluch des Pharaos bewirkt, dass sich der Schatzsucher, sobald er sich im Königsdreieck befindet, nur geradlinig auf eine der Pyramidenspitze zu bewegen kann. Dabei schafft er jeweils genau die Hälft der Strecke bis zur nächsten Pyramide und muss eine Weile rasten, um dann von neuem irgendeine Pyramide anzusteuern. Gibt es Stellen im Königsdreieck, die ein Schatzsucher niemals erreichen kann, so dass der Eingang zur Grabkammer verborgen bleibt und der Pharao seine ewige Ruhe behalten wird?

Fraktale Das Chaos-Spiel Die Regeln 1. Wähle einen beliebigen Startpunkt P im Dreieck ABC 2. Würfle oder ziehe aus einer Urne ein Los mit einer Zahl zwischen 1 und 6 3. Verbinde den Punkt P mit der Ecke A, wenn eine 1 oder 2 gewürfelt wurde mit der Ecke B, wenn eine 3 oder 4 gewürfelt wurde mit der Ecke C, wenn eine 5 oder 6 gewürfelt wurde. Bestimme den Mittelpunkt M der Verbindungsstrecke. Dies ist der neue Punkt P*. 4. Gehe zu 2.

Fraktale Das Chaos-Spiel Das MSWLogo-Programm to ChaosSpiel :x :y make „z random 3 make „z :z+1 if :z=1 [PunktA] if :z=2 [PunktB] if :z=3 [PunktC] ChaosSpiel :x :y end to main cs setpensize[2 2] hat ChaosSpiel 0 0 end to PunktC make „x :x/2 make „y (:y-200)/2 pu setx :x sety :y pd fd 1 bk 1 end to PunktA make „x (:x-200)/2 make „y (:y+200)/2 pu setx :x sety :y pd fd 1 bk 1 end to PunktB make „x (:x+200)/2 make „y (:y+200)/2 pu setx :x sety :y pd fd 1 bk 1 end

Fraktale Das Chaos-Spiel Aufgaben 1. Führe das Programm aus. Um es zu stoppen, musst du den HALT-Button anklicken. 2. Die Koordinaten der Eckpunkte A(-200,200), B(200,200) und C(0,-200) sind vorgegeben. Verändere das Programm so, dass die Koordinaten der Punkte eingegeben werden können. 3. Was passiert, wenn man 4 Punkte benutzt? Schreibe das Programm um und teste es. Ergebnis?

Fraktale Das Sierpinski-Dreieck to sierpinski :stufe :laenge if :stufe=0 [repeat 3[fd :laenge rt 120]stop] sierpinski :stufe-1 :laenge/2 fd :laenge rt 120 end

Fraktale Das Sierpinski-Dreieck – mit IF to sierpinski :laenge if :laenge<20 [repeat 3[fd :laenge rt 120]stop] sierpinski :laenge/2 fd :laenge rt 120 end

Fraktale Das Sierpinski-Dreieck

Fraktale Das Sierpinski-Dreieck to fill_it setfc 9-:level rt 30 pu fd 0.6*:size fill bk 0.6*:size pd lt 30 end to main cs setpensize[3 3] pu bk 100 rt 30 pd for[level 1 4][ start 500 :level wait 30] to start :size :level if :level=0[stop] repeat 3[zeichne rt 120] fill_it end to zeichne start :size/2 :level-1 fd :size

Fraktale Das Sierpinski-Dreieck to sierpinski :level :laenge if :level=0[repeat 3[fd :laenge rt 120]stop] sierpinski :level-1 :laenge/2 fd :laenge rt 120 end Aufruf: sierpinski 5 400

Fraktale Das Sierpinski-Dreieck

Fraktale Das Sierpinski-Dreieck Aufruf: sierpinski2 200 to sierpinski2 :laenge if :laenge<5 [stop] pu fd :laenge pd fd :laenge bk :laenge rt 90 fd :laenge bk :laenge lt 90 sierpinski2 :laenge/2 pu bk :laenge pd pu rt 90 fd :laenge lt 90 pd pu rt 90 bk :laenge lt 90 pd end Aufruf: sierpinski2 200

Fraktale Das Sierpinski-Dreieck Das folgende Beispiel zeigt, dass sich das Sierpinski-Dreieck auf unzählige Arten variieren lässt.

Fraktale Das Sierpinski-Dreieck Aufruf: sierpinski3 200 to sierpinski3 :laenge if :laenge<5 [stop] pu fd :laenge fd :laenge rt 90 pd fd :laenge bk :laenge rt 90 fd :laenge bk :laenge lt 90 sierpinski3 :laenge/2 pu lt 90 bk :laenge bk :laenge pd rt 90 fd :laenge lt 90 pd pu rt 90 bk :laenge lt 90 pd end Aufruf: sierpinski3 200

Fraktale Der Antennenbaum Aufruf: go 8 To Display :Order SetPC[255 255 255] SetPos [-190 184] Label Sentence [Antenne Tree Level] :Order End To Go :Order New Init :Order Display :Order Home Right 90 SetPC[255 255 0] PenDown Tree :Order :Size To Init :Order Make "Size 150 Make "RootHalf 1/Sqrt 2 To New Cs SetSC[0 0 0] SetPC[255 255 0] Setpensize[4 4] PenUp HideTurtle To Tree :Order :Size If :Order < 1 [Stop] Forward :Size Left 90 Tree :Order-1 :RootHalf*:Size Left 90 Forward 2*:Size Left 90 Left 90 Forward :Size Aufruf: go 8

Fraktale Der Cantor-Staub Version 1 to Cantor :stufe :laenge Ifelse :stufe<0[setpc 1+random 7 FD :laenge][pd Cantor :stufe-1 :laenge/3 Pu fd :laenge/3 Pd Cantor :stufe-1 :laenge/3] end

Fraktale Der Cantor-Staub Version 2 to CantorQuadrate :laenge :stufe if :stufe=0 [pd quadrat :laenge stop] repeat 4[pu fd :laenge rt 90 CantorQuadrate :laenge/3 :stufe-1] end to quadrat :laenge repeat 4[fd :laenge rt 90] end

Fraktale Der Cantor-Staub Version 3 to cantor :level :laenge if :level=0[repeat 4[fd :laenge rt 90]stop] cantor :level-1 :laenge/3 fd :laenge rt 90 end

Fraktale Der Cantor-Staub Version 4 to CantorVersion4 :laenge :stufe If :stufe<0 [stop] repeat 4[CantorVersion4 :laenge/3 :stufe-1 fd :laenge wait 3 rt 90] end to main cs setpensize[2 2] CantorVersion4 400 4

Fraktale Der Cantor-Staub Version 4 Stufe 1 Stufe 2 Stufe 3 Stufe 4

Fraktale Sierpinski-Carpet Aufruf: carpet 400 3 to carpet :laenge :stufe if :stufe<1 [stop] repeat 4[shape rt 90] carpetfill end to carpetfill pu rt 45 fd :laenge/2 setfc 7-:stufe fill bk :laenge/2 lt 45 pd to main clearscreen setfc [10 10 10] fill setpensize[5 5] pu bk 100 rt 90 bk 200 lt 90 pd setpc 0 pendown Carpet 500 3 end to shape carpet :laenge/3 :stufe-1 fd :laenge/3 fd 2*:laenge/3 Aufruf: carpet 400 3

Fraktale Sierpinski-Carpet

Fraktale Die Hilbert-Kurve Im Jahre 1891 veröffentlichte D. Hilbert in den M. Annalen eine Arbeit mit dem Titel Über die stetige Abbildung einer Linie auf ein Flächenstück, in der er eine Kurve beschrieb, die durch jeden Punkt eines Quadrats geht. Als Grundfigur verwendet man ein unten offenes Quadrat, das einmal als Rechtskurve und zum anderen als Linkskurve durchlaufen wird. Beim Zeichnen der Grund-figur wird jeweils in den Ecken, d.h. unmittelbar vor der Vorwärts-Anweisung, die Prozedur selbst aufge-rufen. Man kann sich vorstellen, dass die vier Ecken „aufgeblasen“ und durch die Grundfigur ersetzt werden.

Fraktale Die Hilbert-Kurve

Fraktale Die Hilbert-Kurve

Fraktale Die Hilbert-Kurve

Fraktale Die Hilbert-Kurve Rekursive Konstruktion Teile ein quadratisches Gebiet auf in 4 kongruente Teilquadrate Finde eine raumfüllende Kurve für jedes Teilquadrat Füge die Teilfiguren geeignet zusammen

Fraktale Die Hilbert-Kurve

Fraktale Die Hilbert-Kurve Aufruf: hilbert 20 2 -1 setpc 1+random 8 fd :size hilbert :size :level-1 :vorzeichen rt 90*:vorzeichen wait 5 hilbert :size :level-1 -:vorzeichen lt 90*:vorzeichen end to hilbert :size :level :vorzeichen If :level=0[stop] lt 90*:vorzeichen hilbert :size :level-1 -:vorzeichen wait 5 setpc 1+random 8 fd :size rt 90*:vorzeichen hilbert :size :level-1 :vorzeichen Aufruf: hilbert 20 2 -1

Lindenmayer-Systeme Einführung Das L-System (Lindenmayer-System) geht auf den Biologen Aristid Lindenmayer (1925-1989) zurück, der versuchte, mit Hilfe von formalen Syste-men und Grammatiken Wachs-tumsprozesse lebender Orga-nismen nachzubilden. Vor allem interessierten ihn Verzwei-gungsmechanismen bei Bäumen und Büschen.

Lindenmayer-Systeme Aristid Lindenmayer - Biographie Geboren am 17. November 1925 in Budapest Gestorben am 30. Oktober 1989 in den Niederlanden Universitätsabschluss in Chemie, danach emigriert in die USA 1968 ein grammatikalisches Modell zur Darstellung von Pflanzen entwickelt

Lindenmayer-Systeme Einführung Das L-System ist ein Er-setzungssystem. Ausgehend vom Startsymbol, dem Axiom, wird jedes Zeichen schrittweise nach festgelegten Regeln durch eine bestimmte Zeichenfolge ersetzt, die auch aus demsel-ben Zeichen bestehen kann. In jedem Iterationsschritt werden alle vorhandenen Regeln gleich-zeitig auf die schon vorhandene Zeichenkette angewendet.

Lindenmayer-Systeme Einführung L-Systeme. Deterministische L-Systeme, bzw. nicht determi-nistische oder stochastische L-Systeme. Stochastische L-System enthalten, wie der Name schon sagt, Zufallselemente, Deterministische nicht. Deter-ministische L-System be-zeichnet man mit einem “D”. .Kontext freie bzw. Kontext sensitive L-Systeme. Bei Kontext sensitiven L-Systemen hängt die En-wicklung der einzelnen Elemente von ihren Nachbarn ab nicht so bei den Kontext freien. Je nach Größe des berücksichtigten Kon-textes werden die L-Systeme 1,2,3.. gekenn-zeichnet. 0 steht für Kontext freie.

Lindenmayer-Systeme Einführung Es sei V ein Alphabet (a1, a2, a3, ... an), V* die Menge aller möglichen Wörter aus V und V+ die Menge aller mög-lichen Wörter aus V ohne {}. Ein 0L-System ist das geordnete Tripel [V,,P],in dem V das Alphabet   V+ ein nichtleeres Wort genannt Axiom und P  VxV+ eine endliche Menge an Produktionsregeln ist. Eine Produktionsregel (a,)  P wird als a   geschrie-ben. Der Buchstabe a und das Wort  werden Vorgänger und Nachfolger genannt (amerikan. predecessor und successor). Für jeden Buchstaben a existiert mindestens ein Wort   V*, so dass a  . Ist kein spezielles Wort  für einen be-stimmten Vorgänger a  V gegeben, so wird a  a der Menge aller P hinzugefügt.

Lindenmayer-Systeme Einführung Ein Lindenmayer-Sytem besteht aus drei Arten von Regeln: .einer Startregel, .einer endlichen Menge von Hauptersetzungsregeln und .einer Abbruchregel. Zur Erzeugung einer Zeichenfolge wird mit der Startregel begonnen, dann werden n-mal die Hauptersetzungsregeln angewendet; zum Schluss tritt die Abbruchregel in Aktion. Die Zahl n heißt Ordnung der erzeugten Zeichenfolge.

Lindenmayer-Systeme Einführung Die grundlegende Idee der grafischen Interpretation beruht auf einer Interpretation des Wortes durch eine Turtle. Man beschreibt dies durch ein sog. Tripel (x,y,), wobei (x,y) die Position im Koordinatensystem darstellt und  die Blickrichtung der Turtle. F : Turtle bewegt sich um einen Schritt der Länge d und zieht dabei eine Linie. + : Turtle verändert die Blickrichtung um einen bestimmten Winkel nach rechts. - : Turtle verändert die Blickrichtung um einen bestimmten Winkel nach links.

Lindenmayer-Systeme Einführung Mögliche Anwendungen Aus einer Studienarbeit von Frank Böhmer (TU Braunschweig, 2002 Seite 10) Lindenmayer-Systeme stellen eine ausgesprochen effiziente Komprimierung von Pflanzen-Modellen dar. Durch den inhä-renten Nichtdeterminismus limitierter Lindenmayer-Systeme lassen sich fast beliebig viele verschiedene – jedoch einander ähnelnde – Pflanzen-Modelle aus einem System ableiten. Zudem erfordert die Berechnung eines statisch implemen-tierten Systems vergleichsweise wenig Aufwand. Es liegt also eine Anwendung nahe, in der große Pflanzenbestände gene-riert werden müssen. Zum Beispiel bei der Simulation eines Waldes in Computerspielen oder in Applikationen zur Land-schaftsplanung limitierte Lindenmayer-System zum Einsatz kommen, bei denen die Bäume in Echtzeit nur für den gerade sichtbaren Ausschnitt berechnet werden.

Lindenmayer-Systeme Die Bakterie Anabaena Catenula Für das Wachstum sind Elemente aus zwei verschiedenen Bakterientypen verantwortlich, die sich durch ihre Größe sowie durch ihr Teilungsverhalten unterscheiden. Wir nennen sie A und B. Da beide Typen asymmetrisch aufgebaut sind, können sie in der Kette entweder nach links oder nach rechts orientiert sein. Es gibt daher vier unterschiedliche Elemente.

Lindenmayer-Systeme Die Bakterie Anabaena Catenula Das Alphabet V des L-Systems beschränkt sich auf vier Zeichen. Eine nach rechts orientierte A-Baktereie teilt sich nach einer gewissen Zeit in eine nach rechts orientierte B-Bakterie und in eine nach links orientierte A-Bakterie und sowie auch spiegelverkehrt. Es ergibt sich folgende Produktionsregel:

Lindenmayer-Systeme Die Bakterie Anabaena Catenula Für die B-Bakterien gelten folgende Produktionsregeln (p3 und p4): Was jetzt noch fehlt ist eine Startbakterie. Wir erhalten damit:

Lindenmayer-Systeme Die Bakterie Anabaena Catenula Vom Axiom ausgehend und die Produktionsregeln anwendend erhält man eine Sequenz von Zeichenketten, die die verscheidenen Wachstumsstadien von Anabanea Catenula entsprechen.

Lindenmayer-Systeme Damit ergibt sich für die Evolutionen: g0 = a 1. Beispiel Damit ergibt sich für die Evolutionen: g0 = a g1 = b g3 = ba g4 = bab g5 = babba g6 = babbabab usw. Das Alphabet besteht aus: V = {a,b} Das Axiom lautet:  = a Die Produktionsregeln lauten: p1 : a  b p2 : b  ba

Lindenmayer-Systeme Damit ergibt sich für die Evolutionen: g0 = a 1. Beispiel Damit ergibt sich für die Evolutionen: g0 = a g1 = b g3 = ba g4 = bab g5 = babba g6 = babbabab usw. Bestimmt man die Länge der jeweiligen Zeichenkette, so erhält man die Fibonacci-Folge 1 – 1 – 2 – 3 – 5 – 8 -13 – 21 -34 – 55 – 89 - …..

Lindenmayer-Systeme Damit ergibt sich für die Evolutionen: 2. Beispiel Damit ergibt sich für die Evolutionen: g0 = F g1 = F - F + + F - F usw. Das Alphabet besteht aus: V = {F,+,+} Das Axiom lautet:  = F Die Produktionsregeln lauten: p1 : F  F - F + + F - F p2 : +  + p3 : -  -

Lindenmayer-Systeme Befehle der Turtle

Lindenmayer-Systeme X Y G f Z < > C Befehle der Turtle X Eine Ecke ist Ausgangspunkt (x-Koordinate) Y Eine Ecke ist Ausgangspunkt (y-Koordinate) G Ebenfalls ein Generator, ähnlich wie F f Vorwärtsbewegung ohne zu zeichnen Z Zufallsfarbe < Die Farbnummer wird um 1 verkleinert > Die Farbnummer wird um 1 vergrößert C Gefolgt von 000 bis 255 (gewählte Farbe)

Lindenmayer-Systeme Die Kochkurve Axiom: F Erste einfache fraktale Kurven Die Kochkurve Axiom: F Ersetzungsregel: F  F+F - -F+F Winkel:  = 60o

Lindenmayer-Systeme Die Kochkurve Axiom: F Erste einfache fraktale Kurven Die Kochkurve Axiom: F Ersetzungsregel: F  F+F- -F+F Winkel:  = 60o

Lindenmayer-Systeme Die Kochsche Schneeflocke Axiom: F - - F - - F Erste einfache fraktale Kurven Die Kochsche Schneeflocke Axiom: F - - F - - F Ersetzungsregel: F  F+F- -F+F Winkel:  = 60o

Lindenmayer-Systeme Die Peano Kurve Axiom: X Ersetzungsregel Erste einfache fraktale Kurven Die Peano Kurve Axiom: X Ersetzungsregel X  XFYFX+F+YFXFY-F-XFYFX Y  YFXFY-F-XFYFX+F+YFXFY Winkel:  = 90o

Lindenmayer-Systeme Die Peano Kurve Axiom: X Ersetzungsregel Erste einfache fraktale Kurven Die Peano Kurve Axiom: X Ersetzungsregel X  XFYFX+F+YFXFY-F-XFYFX Y  YFXFY-F-XFYFX+F+YFXFY Winkel:  = 90o

Lindenmayer-Systeme Die Hilbert Kurve Axiom: X Ersetzungsregel Erste einfache fraktale Kurven Die Hilbert Kurve Axiom: X Ersetzungsregel X  -YF+XFX+FY- Y  +XF-YFY-FX+ Winkel:  = 90o

Lindenmayer-Systeme Die Hilbert Kurve Axiom: X Ersetzungsregel Erste einfache fraktale Kurven Die Hilbert Kurve Axiom: X Ersetzungsregel X  -YF+XFX+FY- Y  +XF-YFY-FX+ Winkel:  = 90o

Lindenmayer-Systeme Das Sierpinski Dreieck - 1.Version Axiom: F-F-F Erste einfache fraktale Kurven Das Sierpinski Dreieck - 1.Version Axiom: F-F-F Ersetzungsregel F->F-F+F+F-F Winkel:  = 120o

Lindenmayer-Systeme Das Sierpinski Dreieck- 2.Version Erste einfache fraktale Kurven Das Sierpinski Dreieck- 2.Version Axiom: FXF + + FF + + FF Ersetzungsregel FF  FF X  ++ FXF - - FXF - - FX ++ Winkel:  = 60o

Lindenmayer-Systeme Das Sierpinski Dreieck Axiom: FXF + + FF + + FF Erste einfache fraktale Kurven Das Sierpinski Dreieck Axiom: FXF + + FF + + FF Ersetzungsregel FF  FF X  ++ FXF - - FXF - - FX ++ Winkel:  = 60o

Lindenmayer-Systeme Ein einfacher Baum Axiom: F Ersetzungsregel Sträucher und Bäume - zweidimensional Ein einfacher Baum Axiom: F Ersetzungsregel F  F[+F][-F] Winkel:  = 45o

Lindenmayer-Systeme Strauch 1 Strauch 2 Strauch 3 Strauch 4 Strauch 5 Sträucher und Bäume - zweidimensional Strauch 1 Strauch 2 Strauch 3 Axiom: F Axiom: F Axiom: F Ersetzungsregel F  F[+F]F[-F]F Ersetzungsregel F  F[+F]F[-F][F] Ersetzungsregel F  FF-[-F+F+F]+ [+F-F-F] Winkel:  = 25,7o Winkel:  = 20,0o Winkel:  = 22,5o Strauch 4 Strauch 5 Strauch 6 Axiom: X Axiom: X Axiom: X Ersetzungsregel X  F[+X]F[-X]X F  FF Ersetzungsregel X  F[+X][-X]FX F  FF Ersetzungsregel X  F-[[X]+X]+F[+FX]-X F  FF Winkel:  = 20,0o Winkel:  = 25,7o Winkel:  = 22,5o

Lindenmayer-Systeme Strauch 1 Axiom: F Ersetzungsregel F  F[+F]F[-F]F Sträucher und Bäume - zweidimensional Strauch 1 Axiom: F Ersetzungsregel F  F[+F]F[-F]F Winkel:  = 25,7o

Lindenmayer-Systeme Strauch Axiom: F Ersetzungsregel Sträucher und Bäume - zweidimensional Strauch Axiom: F Ersetzungsregel F  F[++F-F]F[--F+F]F Winkel:  = 180/14o

Lindenmayer-Systeme Strauch Axiom: F Ersetzungsregel Sträucher und Bäume - zweidimensional Strauch Axiom: F Ersetzungsregel F  FF+[+F-F-F]-[-F+F+F] Winkel:  = 25o

Lindenmayer-Systeme Strauch Axiom: F Ersetzungsregel Sträucher und Bäume - zweidimensional Strauch Axiom: F Ersetzungsregel F  F[++++++++ F++++++++F]F[-------- F--------F]-F Winkel:  = 1o

Lindenmayer-Systeme Strauch Axiom: F Ersetzungsregel Sträucher und Bäume - zweidimensional Strauch Axiom: F Ersetzungsregel F FF+[+F-F[-F]+F]-[-F+F[+F]-FF] Winkel:  = 25o

Lindenmayer-Systeme Strauch Axiom: F Ersetzungsregel Sträucher und Bäume - zweidimensional Strauch Axiom: F Ersetzungsregel F FF+[+F—F+F]-[-F+F-F] Winkel:  = 26o

Lindenmayer-Systeme Sträucher und Bäume – mit Mathematica n=3; ultraSchildkroete[ {"V"->"VV+[+V-V[-V]+V]-[-V+V[+V]-VV]"},"VZ",n,180/8, 1.,{0,0},{0,1},6,(16*10^n+5)/7];

Lindenmayer-Systeme Sträucher und Bäume – mit Mathematica n=4; ultraSchildkroete[{"V"->"VV+[+V--V+V]-[-V+V-V]"},"VZ",n,26, 1.,{0,0},{0,1},6,(8^n+1)/3];

Lindenmayer-Systeme pflanze1[2]; Sträucher und Bäume – mit Mathematica auch dreidimensional pflanze1[2]; pflanze1[n_]:= botanic3D[{"x"-> "vdddvxzuuurrrddvxzuurrddvxzuurrrvvzrrddv P2+v-vv-v++z-zz-z+GxzuurrdddvP2+v-vv-v++z-zz-z+G xzuuurrrddvP2+v-vv-v++z-zz-z+Gxzuurzz"}, "x",n,{12,45,15},1.,{0.,0.,0.}, {{0,0,1},{0,1,0},{1,0,0}}];

Lindenmayer-Systeme pflanze2[4]; Sträucher und Bäume – mit Mathematica auch dreidimensional pflanze2[n_]:= botanic3D[{"x"-> "kkx-kxddrrblluuuurrbllddh+rrrr+ ixrblj-rr-ixddrbluurrukk (ddmuurddmuurddmuurddmuurddmuurddmuurddmuurddmuur) hhdlluurrbllddj++kxrblh-kkrrhhhh", "k"->"vvv","h"->"zzz","i"->"vvvv","j"->"zzzz", "m"->"P5-v+v+v++++v+v+v+++++G", "b"->"dP2-vv+vvv+vv++++vv+vvv+vv+++++Gu"}, "x",n,{25,45,30},1.,{0.,0.,0.}, {{0,0,1},{0,1,0},{1,0,0}}]; pflanze2[4];

Lindenmayer-Systeme pflanze2[4]; Sträucher und Bäume – mit Mathematica auch dreidimensional pflanze2[4];

Lindenmayer-Systeme pflanze3[4]; Sträucher und Bäume – mit Mathematica auch dreidimensional pflanze3[n_]:= botanic3D[{"x"-> "-kxddrrblluuuurrbllddh+rrr-ixddrbluuuurrbllddj+rrr -ixddrbluuuurrbllddj+kkxrr (ddmuurrddmuurrddmuurrddmuurrrdmurrdmurrdmurrdmur) llrrhh", "k"->"vvv","h"->"zzz","i"->"vvvv","j"->"zzzz", "m"->"P3-v+v+v++++v+v+v+++++G", "b"->"dP1-vv+vvv+vv++++vv+vvv+vv+++++Gu"}, "x",n,{25,45,30},1.,{0.,0.,0.}, {{0,0,1},{0,1,0},{1,0,0}}]; pflanze3[4];

Lindenmayer-Systeme pflanze3[4]; Sträucher und Bäume – mit Mathematica auch dreidimensional pflanze3[4];

Lindenmayer-Systeme rose[2]; Sträucher und Bäume – mit Mathematica auch dreidimensional rose[n_]:= botanic3D[{"x"-> "kkk---vddddrrblluuuuuuuurrbllddddz+++vrrr---vrblz+++ vrrr---vddddrbluuuuuuuurrbllddddz+++ krr(ddmuurrddmuurrddmuurrddmuurrrdmurrdmurrdmurrdmur) llrrhzzhhh", "k"->"vvv","h"->"zzz", "m"->"P5--v++v++v++v++v++v++++G", "b"->"dP1-v+v+v++++v+v+v+++++Gu"}, "x",n,{15,45,30},1.,{0.,0.,0.}, {{0,0,1},{0,1,0},{1,0,0}}]; rose[2];

Lindenmayer-Systeme rose[2]; Sträucher und Bäume – mit Mathematica auch dreidimensional rose[2];

Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5 Seite für XFrog3.5 http://www.xfrogdownloads.com/greenwebNew/products/xfrogSubStart.htm Startseite von Greenworks http://www.xfrogdownloads.com/greenwebNew/products/productsSubStart.htm

Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5 Seite für XFrog3.5 http://www.xfrogdownloads.com/greenwebNew/products/xfrogSubStart.htm

Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5

Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5

Aufgaben