ich habe folgendes Programm zur Darstellung einer Julia-Menge in der komplexen Ebene geschrieben:
Code: Alles auswählen
from tkinter import *
from math import *
ZOOM=200
LAENGE=500
SCHRITTE=16
class Julia(object):
def __init__(self,c):
self.c=c
self.fenster=Tk()
self.bild=PhotoImage(width=LAENGE,height=LAENGE)
self.bildflaeche=Label(master=self.fenster, \
image=self.bild)
self.bildflaeche.pack()
self.zeichnen()
self.fenster.mainloop()
def zeichnen(self):
intervalle=[]
for i in range(int(-LAENGE/2),int(LAENGE/2)):
intervalle=intervalle+[i/ZOOM]
for x in intervalle:
for y in intervalle:
z=complex(x,y)
if self.test(z) == -1:
self.bild.put("#000000",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 0:
self.bild.put("#111111",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 1:
self.bild.put("#222222",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 2:
self.bild.put("#333333",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 3:
self.bild.put("#444444",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 4:
self.bild.put("#555555",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 5:
self.bild.put("#666666",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 6:
self.bild.put("#777777",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 7:
self.bild.put("#888888",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 8:
self.bild.put("#999999",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 9:
self.bild.put("#aaaaaa",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 10:
self.bild.put("#bbbbbb",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 11:
self.bild.put("#cccccc",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 12:
self.bild.put("#dddddd",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 13:
self.bild.put("#eeeeee",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 14:
self.bild.put("#ffffff",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
elif self.test(z) == 15:
self.bild.put("#ffffff",(int(x*ZOOM+(LAENGE/2)),int(-y*ZOOM+(LAENGE/2))))
def test(self,z):
r=max(abs(self.c),2)
i=0
while i<SCHRITTE:
if abs(z)>r:
return i # NICHT in der Gefangenenmenge
z=z*z+self.c
i=i+1
return -1 # in der Gefangenenmenge
Siehe hier:

Ich bin ein wenig ratlos. Über Hinweise und Tipps würde wäre ich sehr dankbar!
Viele Grüße,
muhazz