import tkinter as tk

# 窗口设置
WIDTH = 800
HEIGHT = 600
XMIN, XMAX = -2.25, 0.75
YMIN, YMAX = -1.25, 1.25
MAX_ITER = 120

root = tk.Tk()
root.title("曼德博集合｜复杂分形图形（Tkinter原生）")
canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT, bg="black")
canvas.pack()
img = tk.PhotoImage(width=WIDTH, height=HEIGHT)
canvas.create_image((0, 0), image=img, anchor="nw")

# 渲染分形
for py in range(HEIGHT):
    y = YMIN + (YMAX - YMIN) * py / HEIGHT
    row = []
    for px in range(WIDTH):
        x = XMIN + (XMAX - XMIN) * px / WIDTH
        c = complex(x, y)
        z = 0j
        color = 0
        for i in range(MAX_ITER):
            z = z * z + c
            if abs(z) > 2:
                color = i
                break
        # 配色
        r = int((color * 2) % 255)
        g = int((color * 5) % 255)
        b = int((color * 9) % 255)
        row.append(f"#{r:02x}{g:02x}{b:02x}")
    img.put("{" + " ".join(row) + "}", (0, py))
    root.update()  # 实时刷新画面

root.mainloop()