Related Julia set
zi+1 = zi2 + c
c: (0.1234e-5, 0.1234e-5)
centroid: (0.1234e-5, 0.1234e-5)
interior angle: 123.45°
motive offset from centroid:
r: 0.1234e-5 r': 0.1234e-5
θ: 0.1234e-5 = 123.45° θ': 0.1234e-5
c:
Centroid:
Angle: °

Mandelic Spirals

Christopher Nicolai | moc.scilednam@sirhc
Close
A set I imagine as an abyss.- Georg Cantor When Cantor wrote those words, he was thinking of mathematical sets such as the Cantor Set. To construct it, start with a line segment and remove the middle one-third, so two disconnected segments remain. Then repeat, removing the middle one-third from each of the remaining segments, ad infinitum, until you have nothing but dust. Cantor proved this dust is uncountable, even if you were to count forever.

The infinite details of the Mandelbrot set are also made by repetitive iteration. We start with a rectangle in which each point (x, y) represents a complex number (x + y*i). Maybe you've heard that "i" is the square root of -1, but have you seen it? What does it mean to say that i*i = -1? Usually when we think about multiplication, it's with positive numbers, and only the length of the arrow changes.

*
=

Sometimes one of the numbers is negative, and that flips the answer 180 degrees.

*
=

Each time you multiply by a negative number, it adds another 180 degrees of spin. The lengths are scaled, but the angles are added together.

*
=

Notice that -1 is a square root of 1, because it has half the spin of 1 (0 degrees == 360 degrees) What about the square root of -1? Cut the spin in half again: 90 degrees:

*
=

If real numbers are the x axis, "i" defines the y axis of the "complex plane," which is useful for modeling rotation. In that light, it's not surprising that its swirls give rise to eddies.

Addition is simpler: arrange the arrows in sequence starting from (0, 0), and the result is a new arrow from (0, 0) to the end point. Adding (x, y) moves the original point by that distance.

+
=

So, we start with a rectangle around (0, 0), and repeat a calculation for every point c: z' = z^2 + c, starting with z=c. In other words, at each step we take the point, square its distance from zero, double its angle, then move it by the original displacement from (0, 0). We repeat this process until the point z gets too large and leaves the picture. Typically, points are colored based on how quickly they escape; i.e. all of the points which escape after one iteration are the same shade. The points that never escape are the actual Mandelbrot set. They are typically left blank and mysterious.

We have seen plenty of dazzle from the escaped points, but what lies within Mandelbrot's abyss? Following one point on its journey inward, we connect the dots* to reveal a spiral. (colors: z, z^2, and z^2 + c)

If we start again from a neighboring point, we get another spiral, almost the same. Animate the starting point and the spiral pulsates. The current starting point is shown at right.

* I've connected the dots somewhat arbitrarily by supposing that each z' must be some complex power of the previous z:

     z' = z^(1+p);
  where p = (log z')/(log z) - 1
  I wrote the exponent as (1+p)
  to take advantage of z^1 == z:
     z  = z^(1 + 0*p)
  and
     z' = z^(1 + 1*p)
So we can vary the coefficient of p between 0 and 1 to draw a smooth curve between z and z'.

Windows screensaver files:

Bonus spinning crop circle screensavers: Put them in c:\windows\system32\
or c:\windows\syswow64\

Linux packages (Debian/Ubuntu) containing both screen savers,
compatible with xscreensaver and gnome-screensaver:

Close