import tkinter as tk breedte = 200 hoogte = 200 max_stappen = 30 bovengrens = 1000 linksboven = complex(-2, 2) rechtsonder = complex(2, -2) # meer ingezoomd: (haal de 2 regels hieronder uit commentaar) # linksboven = complex(0, 0) # rechtsonder = complex(1, -1) # nog meer ingezoomd: (haal de 2 regels hieronder uit commentaar) # linksboven = complex(1/2, 0) # rechtsonder = complex(1, -1/2) def rgb(red,green,blue): return "#%02x%02x%02x" % (red,green,blue) # deze code moet je niet 'ver-'staan, enkel 'laten' staan root = tk.Tk() canvas = tk.Canvas(root, width=breedte, height=hoogte) canvas.pack() xfactor = (rechtsonder.real - linksboven.real) / breedte yfactor = (rechtsonder.imag - linksboven.imag) / hoogte # c = complex(-0.1, 0.1) # c = complex(-0.12375, 0.56508) # c = complex(-0.12, 0.74) c = complex(-0.11, 0.6557) # c = complex(0, 1) # c=complex(0,0) for x in range(0, breedte): for y in range(0, hoogte): z = complex(x * xfactor + linksboven.real, y * yfactor + linksboven.imag) aantal = 0 while aantal < max_stappen and abs(z) < bovengrens: z = z ** 2 + c # FORMULE aantal = aantal+1 # als het getal niet boven de bovengrens uitkomt, # en de lus zou blijven doordraaien zonder 'rem' op het aantal # stappen: if aantal == max_stappen: line = canvas.create_rectangle(x, y, x + 1, y + 1, fill="black", outline="") # anders, als het getal wel boven de bovengrens uitkomt, # dan weten we aan 'aantal' hoe SNEL dat getal boven # de bovengrens uitkwam - en hoe sneller, hoe feller rood else: color = rgb((int)(aantal * 256.0 / max_stappen), 0, 125) line = canvas.create_rectangle(x, y, x + 1, y + 1, fill=color, outline="") usingIDLE = 0 if not usingIDLE: root.mainloop()