Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Fraktale Definition Wolken sind keine Kugeln, Berge keine Kegel, Küstenlinien keine Kreise. Die Baumrinde ist nicht glatt. Definition: Eine Figur wird."—  Präsentation transkript:

1 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.

2 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.

3 Fraktale 1.Englands Küste

4 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.

5 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.

6 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

7 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

8 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

9 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[ ] make "append "false koch 800 end

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

11 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.

12 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

13 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)

14 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[ ] (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)

15 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[ ] (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)

16 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

17 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

18 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

19 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[ ] make "append "false kreuz 800 end

20 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.

21 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

22 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* rt 90 zwillingStufe :stufe-1 :laenge* lt 90 rt 45 end Ausgangselement - Iterationsstufe 1

23 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* rt 90 zwilling :laenge* lt 90 zwilling :laenge* rt 45 end Iterationsstufe 4

24 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

25 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

26 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[ ] make "append "false peanoGif 2 400 end

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

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

29 Fraktale 5.5 Die Peano Kurve

30 Fraktale 5.6 Die Peano Kurve Peano

31 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 :size end

32 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

33 Fraktale 7.2 Die Kochinsel

34 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.

35 Fraktale 7.2 Die Kochinsel Stufe 3 Stufe 1 Stufe 2

36 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.

37 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.

38 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[ ] rt 45 SierpinskiTeppich 1 500 end

39 Fraktale 8.3 Der Sierpinski-Teppich

40 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]

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

42

43 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[ ]fill repeat 4[ KreuzFraktal right 90] end

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

45 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

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

47 Fraktale 10.3 Das H-Fraktal Stufe 8 Stufe 10

48 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[ ]fill setactivearea[ ] make "append "false HFraktalGifSave 8 200 end

49 Fraktale 10.5 Das H-Fraktal Gif-Animation

50 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

51 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.

52 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

53 Fraktale Das 3-Sterne-Fraktal Stufe 5

54 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.

55 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

56 Fraktale Das 5-Sterne-Fraktal Stufe 5

57 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

58 Fraktale Die Sierpinski-Kurve Stufe 3 und 4

59 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] hilbert end

60 Fraktale Die Hilbert-Kurve Stufe 1 Stufe 2 Stufe 3

61 Fraktale Die Hilbert-Kurve Stufe 4

62 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

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

64 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] dreiecke end

65 Fraktale Rekursive Dreiecke Ausgangselement Stufe 2 Stufe 1 Stufe 4

66 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

67 Fraktale SternFraktal Ausgangselement Stufe 1 Stufe 2 Stufe 3

68 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

69 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.

70 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

71 Fraktale Die Kochsche Schneeflocke Animation

72 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

73 Fraktale Die Kochsche AntiSchneeflocke Stufe 3 Ausgangselement Stufe 1

74 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)

75 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:

76 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:

77 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:

78 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:

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

80 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.

81 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.

82 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

83 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.

84 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.

85 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

86 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

87 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

88 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.

89 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.

90 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

91 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

92 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.

93 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.

94 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

95 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 [ ] PenDown Farn 640 to New Cs SetSC[0 0 0] SetPC[ ] PenUp HideTurtle Aufruf mit: go

96 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?

97 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.

98 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

99 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?

100 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

101 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

102 Fraktale Das Sierpinski-Dreieck

103 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

104 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

105 Fraktale Das Sierpinski-Dreieck

106 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

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

108 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

109 Fraktale Der Antennenbaum Aufruf: go 8 To Display :Order
SetPC[ ] SetPos [ ] Label Sentence [Antenne Tree Level] :Order End To Go :Order New Init :Order Display :Order Home Right 90 SetPC[ ] PenDown Tree :Order :Size To Init :Order Make "Size 150 Make "RootHalf 1/Sqrt 2 To New Cs SetSC[0 0 0] SetPC[ ] 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

110 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

111 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

112 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

113 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] CantorVersion

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

115 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 [ ] 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

116 Fraktale Sierpinski-Carpet

117 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.

118 Fraktale Die Hilbert-Kurve

119 Fraktale Die Hilbert-Kurve

120 Fraktale Die Hilbert-Kurve

121 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

122 Fraktale Die Hilbert-Kurve

123 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

124 Lindenmayer-Systeme Einführung
Das L-System (Lindenmayer-System) geht auf den Biologen Aristid Lindenmayer ( ) 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.

125 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

126 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.

127 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.

128 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.

129 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.

130 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.

131 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.

132 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.

133 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:

134 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:

135 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.

136 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

137 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 – – – 55 – 89 - …..

138 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 : -  -

139 Lindenmayer-Systeme Befehle der Turtle

140 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)

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

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

143 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

144 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

145 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

146 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

147 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

148 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

149 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

150 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

151 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

152 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

153 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

154 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

155 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

156 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

157 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

158 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

159 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];

160 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];

161 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}}];

162 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];

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

164 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];

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

166 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];

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

168 Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5
Seite für XFrog3.5 Startseite von Greenworks

169 Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5
Seite für XFrog3.5

170 Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5

171 Lindenmayer-Systeme Kommerzielle Programme – Xfrog 3.5

172 Aufgaben


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

Ähnliche Präsentationen


Google-Anzeigen