from Tkinter import * from numpy import * import time, Image, ImageTk SIZE = 500 ngrid = 100 u = zeros((ngrid, ngrid)) alpha = 1.7 #Boundary conditions: for i in range(0, ngrid, 1): u[ngrid-1,i]=1 u[i,ngrid-1]=-1 def paint(parent,canvas): global u, alpha for i in range(1, ngrid-1, 1): for j in range(1, ngrid-1, 1): u[i][j] = (1.0-alpha)*u[i][j]+alpha*0.25*(u[i+1][j]+u[i-1][j]+u[i][j+1]+u[i][j-1]) #Tkinter----- intensity = uint32(255*(1+u)/2.0) grayscale = (1 << 16)*intensity + (1 << 8)*intensity + (1 << 0)*intensity img = Image.fromarray(grayscale,mode="RGBX") img = img.resize((SIZE,SIZE)) tkimg = ImageTk.PhotoImage(img) canvas.create_image(SIZE/2,SIZE/2,image=tkimg) root.update() #time.sleep(0.001) parent.after_idle(paint,parent,canvas) #Tkinter----- root = Tk() root.title('tkimage') root.bind('q','exit') canvas = Canvas(root, width=SIZE, height=SIZE, background='white') canvas.pack() root.after(100,paint,root,canvas) root.mainloop()