The Mandelbrot Set: Executable or Text Version

The Mandelbrot Set is described by the term coined by the mathematician Benoit Mandelbrot in 1975 - FRACTAL. This program has been UPDATED to cope with any screen dimensions as of October 2017.

The Mandelbrot Set - Simplified Version: Executable or Text Version

This NEW version as of October 2017 is a rewritten and simplified version of the above version. There are NO on-screen instructions. Once the image completes, left-click the mouse to get the mouse-pointer to appear. Then left-click again to select the top-left corner of a rectangular region to expand. Then right-click to select the bottom-right corner. The new image will then automatically be drawn. On completion, left-click again to get the mouse pointer to appear OR right-click to exit the program. Additionally, you can press -r- to re-run, or press -s- to save the current image as a file called "Mandel.bmp". This program uses eight colours - the first and last being black, and the others random. All gradations are smooth.

The Julia Set: Executable or Text Version

The Julia Set is closely related to the Mandelbrot set. Although there is a precise mathematical meaning to the term Fractal, in essence it means that no matter how close you "zoom in" to the picture, the picture looks the same; it has the same overall pattern.

There is a Julia set for every point of the Mandelbrot set - so there's only ONE Mandelbrot set, but infinitely many Julia sets.

This application has been heavily revised in January 2018 so that it runs a lot faster. All critical routines are now coded into Assembler, using 80-bit floating point calculations. Exponential calculations also now use the FSCALE instruction.

It now includes a real-time preview of the Julia set for wherever the mouse pointer hovers over the Mandelbrot set.


You start off with the Mandelbrot set, and choose the Julia set by clicking on the picture of the Mandelbrot set, then zoom into any particular rectangular area of the Julia Set using the mouse. The Mouse Pointer is turned OFF except once the picture is complete. Then either press -space- to re-run the program from scratch, -Esc- to quit the program altogether, or press -m- to turn ON the Mouse Pointer. Once turned ON, choose a rectangular area to zoom into by clicking firstly the LEFT mouse button at one corner, then the RIGHT mouse button for the OPPOSITE corner. One second later, the program resumes with the Mouse Pointer once again turned OFF.

Once the Julia set has been displayed, pressing -Tab- will cycle through 5 different colour-levels settings.

Julia Set: Cosine Variant: Executable or Text Version

The basic Julia Set is formed from the iteration: Znew = Z x Z - C , but you get some great pictures from variations on this theme. The picture below is from the formula: Znew = COS(Z/C)

Putting Z = x + i.y , to do calculations with COS(Z) is far from obvious. You have to use the following formula:

COS(x + i.y) = COS(x).COSH(y) - i.SIN(x).SINH(y)

Although I haven't included a picture of it, the relevant "Mandelbrot" set asociated with COS(Z/C) looks nothing like the usual Mandelbrot set; it is shaped more like a strange "X"

For the new Assembly Language version above, I found I needed to write my own Floating Point algorithm for EXP(x). Basically, you cannot work out EXP(x) directly in FP Assembler. You have to use EXP(x) = 2^k .EXP(f) where k is an integer. Not only that, but you have to use the formula EXP(f) = 2^(f.lg(e)), where lg(e) is the logarithm of the number e (=2.718281828...) to base 2, and where f.lg(e) must lie between -1 and +1.

Return to Top Page

Next Page