Burning ship (Fraktal)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Übersichtsbild des Burning-Ship-Fraktals
Detailansicht des kleinen Schiffes in der linken Fraktalhälfte

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:

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 | Quelltext 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 wie Kalle's Fraktaler enthält die Formel des Fraktals und ermöglicht einen Zoom in die Ebene.[2]

Einzelnachweise

[Bearbeiten | Quelltext 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/
Commons: Burning ship fractals – Sammlung von Bildern, Videos und Audiodateien