31 lines
764 B
Python
31 lines
764 B
Python
import matplotlib.pyplot as plt
|
|
|
|
|
|
def linspace(start, stop, num):
|
|
return [start + (stop - start) / (num - 1) * k for k in range(num)]
|
|
|
|
|
|
def zeros(rows, cols):
|
|
return [[0 for j in range(cols)] for i in range(rows)]
|
|
|
|
|
|
d, n = 100, 50 # pixel density & number of iterations
|
|
r = 2.5 # escape radius (must be greater than 2)
|
|
|
|
x = linspace(-2.5, 1.5, 4 * d + 1)
|
|
y = linspace(-1.5, 1.5, 3 * d + 1)
|
|
|
|
T = zeros(len(y), len(x))
|
|
|
|
for i, b in enumerate(y):
|
|
for j, a in enumerate(x):
|
|
u, v = 0.0, 0.0
|
|
for k in range(n):
|
|
u, v = u ** 2 - v ** 2 + a, 2 * u * v + b
|
|
if not u ** 2 + v ** 2 < r ** 2:
|
|
break
|
|
T[i][j] = k + 1
|
|
|
|
plt.imshow(T, cmap=plt.cm.twilight_shifted)
|
|
plt.savefig("mandelbrot.png", dpi=200)
|