# Créé par Fred, le 02/06/2013 from __future__ import division from lycee_perso import * from time import sleep from Tkinter import * def exercice_5_5_16(larg_f,haut_f,n_col,n_lig,x_souris,y_souris): """ Renvoie les coordonnées de la case cliquée """ hh=haut_f//n_lig ll=larg_f//n_col col=x_souris//ll lig=y_souris//hh return col,lig def couleur_cellule(l,c): #return couleurRGB(l,c,(l+c)) #return couleurRGB(round(abs(cos(c))*256),round(abs(cos(l))*256),(l+c)%256) return couleurRGB(randint(c%256,(l*c)%256),randint(l%256,(l+c)%256),randint(c%256,(l+2*c)%256)) def cree_tableau(n_c,n_l): """ Création du tableau rempli par du blanc n_l, n_c = nombre de lignes et de colonnes """ T=[] for j in range(n_l): L=[] for k in range(n_c): u=couleurRGB(255,255,255) #u=couleur_cellule(j,k) L=L+[u] T.append(L) return T def cree_grille(c,h,n_c,n_l,T): """ h, c = hauteur et largeur d'une case n_l,n_c= nombre de lignes, nombre de colonnes T=tableau de couleurs des cases """ G=[] for j in range(n_l): GL=[] for k in range(n_c): couleur=T[j][k] xx=c*k;yy=h*j u=canevas.create_rectangle(xx,yy,xx+c,yy+h,fill=couleur,outline='') GL.append(u) G.append(GL) fenetre.update() return G def modifie_case(c,l,T): """ Change la couleur d'une case""" T[l][c]=couleur_cellule(c,l) def change_case(c,l,G,couleur): """ Modifie l'affichage de la couleur d'une case""" canevas.itemconfigure(G[l][c],fill=couleur) def mandelbrot(): """ Mandelbrot """ global zoom, hx, hy, n_ligne, n_colonne, T, G etiquette.configure(text='zoom('+str(zoom[0])+','+ str(zoom[1])+') ; ('+str(zoom[2])+','+str(zoom[3])+')') hx=(zoom[2]-zoom[0])/n_colonne; hy=(zoom[3]-zoom[1])/n_ligne b, k=0,0 while b0: canevas.coords(deja,pos_souris[0],pos_souris[1],event.x,event.y) a,b=exercice_1_1_31(large,haut,n_colonne,n_ligne,event.x,event.y) etiquette.configure(text='zoom('+str(zoom[0]+pos_case[0]*hx)+','+ str(zoom[1]+pos_case[1]*hy)+') ; ('+str(zoom[2]-a*hx)+','+str(zoom[3]-b*hy)+')') # début du programme haut=400;large=400;n_ligne=100;n_colonne=100; h_case=haut//n_ligne; l_case=large//n_colonne; deja=-1 # gestion des graphiques fenetre=Tk() canevas=Canvas(fenetre) canevas.configure(width=large,height=haut,bg='ivory') canevas.pack() etiquette=Label(fenetre) etiquette.pack() sortie=Button(fenetre,text="Quitter",command=fenetre.destroy) sortie.pack() canevas.bind('',clic) canevas.bind('',bouge) # création des tableaux T=cree_tableau(n_colonne,n_ligne) G=cree_grille(l_case,h_case,n_colonne,n_ligne,T) zoom=[-3.5,-2.5,2.5,2.5] mandelbrot() """ """ """ Une petite appli pour s'amuser k=0 while k<=1000000: a=randint(0,n_ligne-1);b=randint(0,n_colonne-1) modifie_case(a,b,T) change_case(a,b,G,couleur_cellule(a,b)) #sleep(0.001) k=k+1 """ fenetre.mainloop()