The Mandelbrot set

'''

Copyright © 2023 Steet.net

 '''

import numba
import cmath
import numpy as np
from PIL import Image
import time

from numba import prange



size = 4096

@numba.njit(parallel=True, cache=True)
def set(width, height, data):

    for i in prange(height):
        for a in prange(width):
            num = iter(2 / width * a - 1.5, 2 / height * i - 1)

            for x in range(50):
                if num < x:
                    data[i, a] = [0, round(255 + x * 5.1), round(255 + x *                        5.1)]
                    break
    return data


@numba.njit(fastmath=True, cache=True)
def iter(x, y):
    z = 0
    c = x + y * cmath.sqrt(-1)
    for i in range(500):
        z = z**2 + c
        if z.real ** 2 + z.imag ** 2 >= 4:
            return i
            break
    return 100

if __name__ == '__main__':
    dataa = np.zeros((size, size, 3), dtype=np.uint8)

    start = time.time()

    arr = set(size, size, dataa)

    end = time.time()
    print(round(end - start, 3))

    img = Image.fromarray(arr)
    img.show()
    img.save("directory")
 

© 2024 All Rights Reserved

Wir benötigen Ihre Zustimmung zum Laden der Übersetzungen

Wir nutzen einen Drittanbieter-Service, um den Inhalt der Website zu übersetzen, der möglicherweise Daten über Ihre Aktivitäten sammelt. Bitte überprüfen Sie die Details in der Datenschutzerklärung und akzeptieren Sie den Dienst, um die Übersetzungen zu sehen.