Сейчас я играю много работал с фракталами (особенно со знаменитым Мандельбротом и его набором Джулии), и после того, как мне надоел простой, стандартный Мандельброт, я подумал про себя:
"А что, если вместо простого создания Мандельброта или набор Джулии, я должен был сделать следующее: создать простое изображение, пройтись по каждому пикселю, масштабировать положение пикселя до [-2 2] по обеим осям, как это было бы для обычного Мандельброта, но вместо того, чтобы просто повторять это; в качестве комплексного числа я создаю набор Julia с низким разрешением (16 на 16, чтобы получить максимум 256, поскольку я использую RGB-спектр), используя его в качестве c-компонента, а затем возвращаюсь в свое изображение и раскрашиваю этот пиксель на основе от того, сколько пикселей содержится в соответствующем наборе Джулии?"
Итак, чтобы уточнить:
Код: Выделить всё
Create plain Image
for each pixel in that Image:
Scale pixel coordinates to the Mandelbrot range and convert to a complex number
Create a Julia Set using the complex number as the C-Component
Count the pixels that are inside the Julia Set
Color the pixel based on that number of pixels (in the main image)
Код: Выделить всё
from PIL import Image
img = Image.new("RGB", (1024, 1024))
def scale(x, y, mx, my):
return complex(x/mx*4-2, y/my*4-2)
def iterate_julia(z, c):
for i in range(1000):
z = z*z+c
if z.real > 4:
return False
return True
def julia_size(c):
size = 0
for x in range(8):
for y in range(16):
size += iterate_julia(scale(x, y, 19, 19), c)*2
return size
for x in range(img.width):
for y in range(int(img.height/2)):
c = julia_size(scale(x, y, img.height, img.width))
img.putpixel((x, y), (c, c, c))
img.putpixel((x, int(img.height-y-1)), (c, c, c))
img.show()
(https://i.sstatic.net/kEXztGxb.png)
Это немного тускло, поэтому я просто добавил порог, чтобы пиксель сразу же окрашивался в белый цвет, если в соответствующем наборе Джулии был какой-либо пиксель, в противном случае он был бы окрашен в черный цвет, что дало мне следующее изображение:
(https://i.sstatic.net/IYN6iIiW.png)
Поэтому везде, где на этом изображении есть белый пиксель, соответствующий набор Джулии не пуст. . Я не уверен, что это будет каким-то образом полезно, но мне все равно показалось это интересным, поэтому я хотел поделиться этим. Также мне кажется, что узоры на первом изображении выглядят довольно аккуратно.
Подробнее здесь: https://stackoverflow.com/questions/790 ... mandelbrot