// fraktale

> fraktal generator

Sierpinski-Dreieck Stufe für Stufe zeichnen

Hier zeichnest du ein Sierpinski-Dreieck - eines der bekanntesten Fraktale. Klick auf "Nächste Stufe" und sieh zu, wie aus einem einfachen Dreieck eine selbstähnliche Struktur entsteht. Jede Stufe verdreifacht die Anzahl der Dreiecke.

Dreiecke: 1
So funktioniert es: Stufe 0 ist ein gefülltes Dreieck. Bei jeder neuen Stufe wird aus jedem Dreieck das mittlere Viertel entfernt. Übrig bleiben 3 kleinere Dreiecke. Das wiederholt sich - aus 1 werden 3, aus 3 werden 9, aus 9 werden 27.

Wie die Rekursion funktioniert

Das Sierpinski-Dreieck entsteht durch eine einfache Regel die sich selbst aufruft - das nennt man Rekursion.

Stufe 0: Zeichne ein gefülltes Dreieck mit drei Eckpunkten.

Stufe 1: Finde die Mittelpunkte aller drei Seiten. Verbinde sie. Das ergibt ein Dreieck in der Mitte. Entferne es (male es in der Hintergrundfarbe). Übrig bleiben 3 Dreiecke - oben, links unten, rechts unten.

Stufe 2: Mach das Gleiche mit jedem der 3 übrigen Dreiecke. Jedes verliert sein mittleres Viertel. Übrig bleiben 9 Dreiecke.

Stufe n: Wiederhole für alle Dreiecke. Nach n Stufen hast du 3^n Dreiecke.

StufeDreieckeSeitenlängeGesamtfläche
011100%
131/275%
291/456,25%
3271/842,19%
4811/1631,64%
52431/3223,73%
86.5611/25610,01%
00%

Das ist das Faszinierende: Nach unendlich vielen Stufen hat das Sierpinski-Dreieck die Fläche 0 - aber unendlich viele Punkte. Es ist mehr als eine Linie (Dimension 1) aber weniger als eine Fläche (Dimension 2).

Fraktale Dimension = log(3) / log(2) ≈ 1,585

Bei jeder Stufe entstehen 3 Kopien, jede um Faktor 2 verkleinert. Also D = log(3) / log(2) ≈ 1,585.

Der Algorithmus im Detail

Der Generator oben nutzt folgenden Algorithmus:

1. Zeichne ein gefülltes Dreieck mit den drei Eckpunkten (Spitze oben, links unten, rechts unten).

2. Finde die Mittelpunkte: Mittelpunkt von Seite AB ist ((Ax+Bx)/2, (Ay+By)/2). Das machst du für alle drei Seiten.

3. Die drei Mittelpunkte bilden ein inneres Dreieck. Fülle es mit der Hintergrundfarbe - das "entfernt" es visuell.

4. Jetzt hast du drei kleinere Dreiecke. Wiederhole Schritt 2-4 für jedes davon.

5. Stoppe bei der gewünschten Rekursionstiefe (hier maximal 8).

Warum maximal 8 Stufen? Bei Stufe 8 hat das Dreieck 6.561 Einzelteile. Jede weitere Stufe verdreifacht die Anzahl. Bei Stufe 10 wären es 59.049 Dreiecke. Ab einem gewissen Punkt siehst du keinen Unterschied mehr, aber der Browser wird langsamer.

Andere Wege zum Sierpinski-Dreieck

Das Chaos-Spiel erzeugt das gleiche Ergebnis auf völlig andere Weise: Wähle einen zufälligen Punkt. Wähle zufällig eine der drei Ecken. Gehe zur Hälfte dorthin. Markiere den Punkt. Wiederhole tausende Male. Es entsteht ein Sierpinski-Dreieck - aus purem Zufall.

Auch das Pascalsche Dreieck enthält das Sierpinski-Muster: Male alle ungeraden Zahlen im Pascalschen Dreieck an. Das Ergebnis ist ein Sierpinski-Dreieck.

Wozu brauche ich das eigentlich? Und warum muss ich das lernen? Programmieren lernen: Rekursion verstehen ist eine Grundkompetenz in der Informatik. Das Sierpinski-Dreieck ist das perfekte Beispiel, um Rekursion zu begreifen.

Häufige Fragen

Was ist ein Sierpinski-Dreieck?

Ein Sierpinski-Dreieck ist ein Fraktal, das entsteht, wenn du aus einem Dreieck immer wieder das mittlere Viertel entfernst. Nach unendlich vielen Schritten hat es die Fläche 0 aber eine fraktale Dimension von 1,585.

Wer hat das Sierpinski-Dreieck erfunden?

Der polnische Mathematiker Waclaw Sierpinski beschrieb es 1915. Das Muster tauchte aber schon Jahrhunderte früher in Kunst und Architektur auf - zum Beispiel in mittelalterlichen Bodenmosaiken.

Was bedeutet die Rekursionstiefe?

Die Rekursionstiefe (Stufe) sagt, wie oft die Unterteilung wiederholt wird. Stufe 0 ist ein einfaches Dreieck. Stufe 1 hat 3 Teildreiecke. Mit jeder Stufe verdreifacht sich die Anzahl. Je höher die Stufe, desto detaillierter das Fraktal.

Warum hat das Sierpinski-Dreieck die Dimension 1,585?

Bei jeder Stufe entstehen 3 Kopien, jede um den Faktor 2 verkleinert. Die fraktale Dimension ist log(3) / log(2) = 1,585. Das bedeutet: Es füllt mehr Raum als eine Linie (1) aber weniger als eine Fläche (2).

> weiter mit chatgpt:
Ich habe gerade ein Sierpinski-Dreieck mit einem Generator gezeichnet und verstehe die Rekursion. Jetzt möchte ich es selbst programmieren. Erkläre mir Schritt für Schritt, wie ich das Sierpinski-Dreieck in JavaScript mit Canvas zeichne. Zeige mir den Code und erkläre jede Funktion. Dann zeige mir, wie ich es mit dem Chaos-Spiel-Algorithmus machen kann.
> für neugierige:
Erkläre mir 5 verschiedene Methoden, wie man ein Sierpinski-Dreieck erzeugen kann: 1) Rekursive Unterteilung, 2) Chaos-Spiel, 3) Pascalsches Dreieck, 4) Zellulärer Automat (Regel 90), 5) L-System. Zeige für jede Methode den Algorithmus in Pseudocode und erkläre warum alle das gleiche Ergebnis liefern.