This is a simple Python program to display the whole Mandelbrot set. Well, not every point from the infinite set, just a few corresponding to pixels…

The Mandelbrot set is a mathematical set of points whose boundary is a distinctive and easily recognizable two-dimensional fractal shape. The set is closely related to Julia sets (which include similarly complex shapes), and is named after the mathematician Benoit Mandelbrot, who studied and popularized it.

Mandelbrot set images are made by sampling complex numbers and determining for each whether the result tends towards infinity when a particular mathematical operation is iterated on it. Treating the real and imaginary parts of each number as image coordinates, pixels are colored according to how rapidly the sequence diverges, if at all.

The Mandelbrot Set is a mathematical fractal defined by the recursive formula z = z^2 + c, where z and c are complex numbers.

Mandelbrot Set in Python:

This Python program plots the whole Mandelbrot set, making use of some optimisations. MIT License. Available on GitHub.

• lower half is a reflection of the upper half;
• the large cardioid and period 2 bulb can be omitted from further tests
```__author__ = 'Alan Richmond'
'''
Mandelbrot.py   Copyright (C) 2014 Alan Richmond (Tuxar.uk)

Full mandelbrot set with a couple of optimizations:

1 compute only top half, mirror it.
2 don't compute set inside the big circle and a couple of smaller ones.
See http://en.wikipedia.org/wiki/Mandelbrot_set#Cardioid_.2F_bulb_checking
'''
from pygame.locals import *
import pygame

def main():
width, height = 1000,1000
screen = pygame.display.set_mode((width,height),DOUBLEBUF)
xaxis = width/1.5+140
yaxis = height/2
scale = 400
iterations = 50

for iy in range(height/2+1):
for ix in range(width):
z = 0+0j
c = complex(float(ix-xaxis)/scale, float(iy-yaxis)/scale)
x=c.real
y=c.imag
y2=y*y
q=(x-0.25)**2+y2
if not(q*(q+(x-0.25))<y2/4.0 or (x+1.0)**2 + y2 <0.0625):
for i in range(iterations):
z = z**2+c
if abs(z) > 2:
v = 765*i/iterations
if v > 510:
color = (255, 255, v%255)
elif v > 255:
color = (255, v%255, 0)
else:
color = (v%255, 0, 0)
break
else:
color = (0, 0, 0)

screen.set_at((ix, iy), color)
screen.set_at((ix, height-iy), color)

pygame.display.update()

while True:
event = pygame.event.poll()
if (event.type == QUIT or
(event.type == KEYDOWN and event.key == K_ESCAPE)):
break

if __name__ == "__main__":
main()
```

[welcomewikilite wikiurl=”http://en.wikipedia.org/wiki/Mandelbrot_set” sections=”Cardioid / bulb checking” settings=””]

This site uses Akismet to reduce spam. Learn how your comment data is processed.