Burning ship (Fraktal)

Fraktal mit dem Aussehen eines scheinbar brennenden Schiffs, schief von vorne gesehen.

Das Burning Ship-Fraktal (unter Kennern und in Software auch abgekürzt als BS) wurde erstmals 1992 von Michael Michelitsch und Otto E. Rössler beschrieben und erstellt. Es wird durch Iteration der Funktion in der komplexen Ebene erzeugt:

Übersichtsbild des Burning-Ship-Fraktals
Detailansicht des kleinen Schiffes in der linken Fraktalhälfte

Die Folge wird in Abhängigkeit vom Startwert entweder ausbrechen oder beschränkt bleiben. Das Fraktal wird von denjenigen Startwerten gebildet, für die die Folge beschränkt bleibt. Der Unterschied zwischen dieser Berechnung und derjenigen für die Mandelbrot-Menge besteht darin, dass die Real- und Imaginärteile vor der Quadrierung bei jeder Iteration auf ihre jeweiligen Absolutwerte gesetzt werden. Die Abbildung ist nicht analytisch, da ihre Real- und Imaginärteile nicht die Cauchy-Riemann-Gleichungen berücksichtigen.[1]

Implementierung

Bearbeiten
 
Animation eines kontinuierlichen Zoom-outs, um die Menge an Details für eine Implementierung mit maximal 64 Iterationen zu zeigen
Derselbe Zoomausschnitt als 8K-Videodatei

Die untenstehende Pseudocode-Implementierung kodiert die komplexen Operationen für Z. Es sollte in Erwägung gezogen werden, Komplexe-Zahlen-Operationen zu implementieren, um einen dynamischeren und wiederverwendbaren Code zu ermöglichen. Beachten Sie, dass die typischen Bilder des Burning-Ship-Fraktals das Schiff aufrecht zeigen: Das tatsächliche Fraktal und das von dem unten stehenden Pseudocode erzeugte Fraktal ist entlang der x-Achse invertiert.

für jeden Bildpunkt (x, y) auf dem Display, mache:
    x := skalierte x-Koordinate des Pixels (so skaliert, dass sie auf der Mandelbrot-X-Skala liegen (-2.5, 1))
    y := skalierte y-Koordinate des Pixels (so skaliert, dass sie auf der Mandelbrot-Y-Skala liegen (-1, 1))
    zx := x // zx entspricht dem Realteil von z
    zy := y // zy entspricht dem Imaginärteil von z
    iteration := 0
    max_iteration := 1000
    während (zx*zx + zy*zy < 4 und iteration < max_iteration) mache
        xtemp := zx*zx - zy*zy + x
        zy := abs(2*zx*zy) + y // abs gibt den absoluten Wert aus
        zx := xtemp
        iteration := iteration + 1
    wenn iteration = max_iteration dann // Gehört zur Menge
        gib zurück insideColor
    gib zurück iteration × color

Software

Bearbeiten

Software wie Kalle's Fraktaler enthält die Formel des Fraktals und ermöglicht einen Zoom in die Ebene.[2]

Einzelnachweise

Bearbeiten
  1. Michael Michelitsch and Otto E. Rössler (1992). "The "Burning Ship" and Its Quasi-Julia Sets". In: Computers & Graphics Vol. 16, No. 4, pp. 435–438, 1992. Reprinted in Clifford A. Pickover Ed. (1998). Chaos and Fractals: A Computer Graphical Journey — A 10 Year Compilation of Advanced Research. Amsterdam, Netherlands: Elsevier. ISBN 0-444-50002-2
  2. http://www.chillheimer.de/kallesfraktaler/
Bearbeiten
Commons: Burning ship fractals – Sammlung von Bildern, Videos und Audiodateien