The Burning Ship
fractal
In mathematics, a fractal is a geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scales, as illu ...
, first described and created by Michael Michelitsch and
Otto E. Rössler in 1992, is generated by iterating the function:
:
in the
complex plane
In mathematics, the complex plane is the plane formed by the complex numbers, with a Cartesian coordinate system such that the -axis, called the real axis, is formed by the real numbers, and the -axis, called the imaginary axis, is formed by the ...
which will either escape or remain bounded. The difference between this calculation and that for the
Mandelbrot set
The Mandelbrot set () is the set of complex numbers c for which the function f_c(z)=z^2+c does not diverge to infinity when iterated from z=0, i.e., for which the sequence f_c(0), f_c(f_c(0)), etc., remains bounded in absolute value.
This ...
is that the real and imaginary components are set to their respective absolute values before squaring at each iteration. The mapping is non-analytic because its real and imaginary parts do not obey the
Cauchy–Riemann equations
In the field of complex analysis in mathematics, the Cauchy–Riemann equations, named after Augustin Cauchy and Bernhard Riemann, consist of a system of two partial differential equations which, together with certain continuity and differ ...
.
[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
Clifford Alan Pickover (born August 15, 1957) is an American author, editor, and columnist in the fields of science, mathematics, science fiction, innovation, and creativity. For many years, he was employed at the IBM Thomas J. Watson Research ...
Ed. (1998). ''Chaos and Fractals: A Computer Graphical Journey — A 10 Year Compilation of Advanced Research''. Amsterdam, Netherlands: Elsevier.
Implementation
The below
pseudocode
In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine re ...
implementation hardcodes the complex operations for Z. Consider implementing
complex number
In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted , called the imaginary unit and satisfying the equation i^= -1; every complex number can be expressed in the form ...
operations to allow for more dynamic and reusable code. Note that the typical images of the Burning Ship fractal display the ship upright: the actual fractal, and that produced by the below pseudocode, is inverted along the x-axis.
for each pixel (''x'', ''y'') on the screen, do:
''x'' := scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1))
''y'' := scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-1, 1))
''zx'' := ''x'' ''// zx represents the real part of z''
''zy'' := ''y'' ''// zy represents the imaginary part of z''
''iteration'' := 0
''max_iteration'' := 100
while (zx*zx + zy*zy < 4 and iteration < max_iteration) do
''xtemp'' := zx*zx - zy*zy + x
''zy'' := abs(2*zx*zy) + y ''// abs returns the absolute value''
''zx'' := xtemp
''iteration'' := ''iteration'' + 1
if ''iteration'' = ''max_iteration'' then ''// Belongs to the set''
return ''insideColor''
return ''iteration'' × ''color''
References
External links
About properties and symmetries of the Burning Ship fractal featured by Theory.org
Burning Ship Fractal Description and C source code.
Burningship Video,
includes the first representations and the original paper cited above on the Burning Ship fractal.
3D representations of the Burning Ship fractalFractalTSMandelbrot, Burning ship and corresponding Julia set generator.
{{Mathematics and art
Fractals
Articles with example pseudocode