Mandelbrotmenge


    import matplotlib.pyplot as plt
    import numpy as np
    
    def mandelbrot_set(width, height, zoom=1, x_off=0, y_off=0, niter=256):
    
        w,h = width, height
        pixels = np.arange(w*h, dtype=np.uint16).reshape(h, w)
        for x in range(w): 
            for y in range(h):
                zx = 1.5*(x + x_off - 3*w/4)/(0.5*zoom*w)
                zy = 1.0*(y + y_off - h/2)/(0.5*zoom*h)
                z = complex(zx, zy)
                c = complex(0, 0)
                for i in range(niter):
                    if abs(c) > 4: break
                    c = c**2 + z
    
                color = (i << 21) + (i << 10)  + i * 8
                pixels[y,x] = color
      
        return pixels
    
    def display(width=1024, height=768, zoom=1.0, x_off=0, y_off=0, cmap='viridis'):
    
        pixels = mandelbrot_set(width, height, zoom=zoom, x_off=x_off, y_off=y_off)
        plt.axis('off')
        plt.imshow(pixels, cmap=cmap)
        plt.show()
    
    #display(zoom=2.0, x_off=-300)
    display(cmap='magma')
    Zurück zur Kurseinheit: 01 Variablen