from PIL import Image

def mandelbrot (c, max_iter):
    z = 0
    for n in range(max_iter):
        if abs(z) > 2:
            return n  # Wie schnell ist der Punkt entflohen?
        z = z*z + c
    return max_iter

width = 1000
height = 800

img = Image.new('RGB', (width, height))

# die komplexe Ebene definieren
x_min, x_max = -2 , 1
y_min, y_max = -1.2, 1.2

for x in range(width):
    for y in range(height):
        real = x_min + (x / width) * (x_max - x_min)
        imag = y_min + (y / height) * (y_max - y_min)
        c = complex(real, imag)
        # print ("x-> ", x, " y-> ",  y, " -> ",c)

        m = mandelbrot(c, 400)

        # Einfache Farbgebung: Schwarz für die Menge, Blau-Töne für den Rand
        if m == 400:
            color = (0, 0, 0)
        else:
            if m >200  and m < 233:
                color = (0, 0, m * 2 % 255)  # Blau-Gradient
            elif m >233 and m < 266:
                color = (0, m * 2 %255, 0)  # Green-Gradient
            else:
                color = (m * 2 %255, 0, 0)  # Red-Gradient

        img.putpixel((x, y), color)

img.save("mandelbrot.png")
print("Bild wurde als mandelbrot.png gespeichert!")


