mandelbrot
Graphs a Mandelbrot fractal. Coded August 2010.
from PIL import Image
def mandelbrot(x0, y0, maximum):
Z = complex()
C = complex(x0,y0)
i = 0
while (Z.real**2 + Z.imag**2 <= 4.0 and i < maximum):
Z = Z**2 + C
i+=1
if i == maximum: #it is in the set
return 255, 255, 255
else: #even if we lose, we can still win...
return (i/float(maximum))*255,0,0
def make_mandelbrot():
scale_factor = 300.0
max_iterations = 100
size = (int(3.5*scale_factor), int(2*scale_factor)) #make it easy for us
im = Image.new("RGB",size)
data = im.load()
for y in range(size[1]):
for x in range(size[0]):
v = mandelbrot((x-2.5*scale_factor)/scale_factor, (y-scale_factor)/scale_factor, max_iterations)
data[x, y] = (int(v[0]),int(v[1]),int(v[2]))
return im
make_mandelbrot().save("out.bmp")