import PIL # Alt + Enter
from PIL import Image
# pip install pillow
def draw_something(image, size, frame):
a = [[0] * size for _ in range(size)]
mandelbrotness = frame
for i in range(size):
for j in range(size):
# множество Жюлиа: z = разные точки прямоуг-ка; c = const
# множество Мандельброта: z = 0; c = разные точки прямоуг-ка
our_pixel = (i - size / 2) / (size / 2) + (j - size / 2) / (size / 2) * 1j
z0 = (1 - mandelbrotness) * our_pixel
c = (1 - mandelbrotness) * (0.239 + 0.566j) + mandelbrotness * our_pixel
z = z0
# Benoit B. Mandelbrot
for k in range(255):
z = z * z + c
if abs(z) > 10:
break
a[i][j] = k
print(z)
b = sum(a, [])
b.sort()
sum_iter = sum(b)
average_sum = 127 * size * size
median = b[len(b) // 2] # → 127
for i in range(size):
for j in range(size):
iters = a[i][j]
color = iters * average_sum // sum_iter
image.putpixel((i, j), (0, 0, min(color, 255)))
size = 300
frames = 50
for frame in range(frames + 1):
image = Image.new("RGB", (size, size), (255, 255, 255))
draw_something(image, size, frame / frames)
image.save("generated" + str(100 + frame) + ".png")
# image.show()
Comments