Mandelbrot fractal using Python Image Library (PIL).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # Mandelbrot fractal
# FB - 201003254
from PIL import Image
# drawing area
xa = -2.0
xb = 1.0
ya = -1.5
yb = 1.5
maxIt = 255 # max iterations allowed
# image size
imgx = 512
imgy = 512
image = Image.new("RGB", (imgx, imgy))
for y in range(imgy):
zy = y * (yb - ya) / (imgy - 1) + ya
for x in range(imgx):
zx = x * (xb - xa) / (imgx - 1) + xa
z = zx + zy * 1j
c = z
for i in range(maxIt):
if abs(z) > 2.0: break
z = z * z + c
image.putpixel((x, y), (i % 4 * 64, i % 8 * 32, i % 16 * 16))
image.save("mandel.png", "PNG")
|
The import statement must be replaced w/ these:
Here is a slightly improved version:
And here is the Julia fractal version that draws a random Julia set everytime:
This is a version of the Mandelbrot fractal code, optimized for speed. This does increase speed at the expense of memory, but the change from range to xrange should soak up some of the slack.