Celticbrot

It is another Mandelbrot family fractal, which is generated by iterating absolute values (like the burning ship). I got it accidentally and it is much more impressive than the original Burning Ship.

The basic function, in C++ using OpenGL, to generate this set is:

void renderCelticbrot(void)
{
       int x, y, cnt, maxIter;
       complex z, t, t2;
       maxIter = 256.0;
       imaginaryXMandelbrot = (maxXMandelbrot - minXMandelbrot) / (GLdouble)currScreenWidth;
       imaginaryYMandelbrot = (maxYMandelbrot - minYMaldenbrot) / (GLdouble)currScreenHeight;
       for (x = 0, z.x = minXMandelbrot; x < currScreenWidth; x++, z.x += imaginaryXMandelbrot)
       { // z = x + i*y;
             for (y = 0, z.y = minYMaldenbrot; y < currScreenHeight; y++, z.y += imaginaryYMandelbrot)
             {
                   t2 = z;
                   cnt = 0;
                   while ((t2.x * t2.x + t2.y * t2.y <= 4) && (cnt < maxIter))
                   {
                         t.x = fabs(t2.x*t2.x - t2.y*t2.y) - z.x;
                         t2.y = 2 * t2.x*t2.y - z.y;
                         t2.x = t.x;
                         cnt++;
                   }
             }
       }
}

And here is this great mathematical body:



In my program you are able to move coordinate axis with arrow keys, also to zoom in and out with keys Q and A. Also to speed up or slow down zooming with the keys W and S, change colours simply by pressing C.
You can download source, working with Windows and MacOS X prior to 10.9, here: LINK