Rendering the Mandelbrot Set

Code on github.

Per Wikipedia, the Mandelbrot set is the set of complex numbers for which the a particular function does not diverge from the origin when iterated. The particular function is: fc(z) = z2 + c

The important facts are that the space is the complex plane, and the colour-coding normally seen corresponds to the number of iterations required for the new value of c to be seen to diverge (have an absolute value above 4). My code for checking and colouring was:

def iter_score(re, im):
x = 0
y = 0
iters = -1
while iters < ITERATION_LIMIT and x * x + y * y < 4:
next_x = x * x - y * y + re
y = 2 * x * y + im
x = next_x
iters += 1
return iter


def score_colour_map(iter_score):
grey_val = iter_score
return [grey_val, grey_val, grey_val]

Could have been more inventive on the colouring, or at least switched the rendering to greyscale. As it is, it’s RGB, but only giving greys:

Main Python note was the issue around getting PyPNG installed so I could “import png”. Perhaps nor surprisingly, it matters which environment is active when you pip-install something. Presumably the environment includes an indicator of which packages are installed (perhaps a directory name?). Anyway, installing a package with the conda environment running doesn’t help when you’re trying to use the package in PyCharm with its own venv! Lesson learned.

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.