# ############################################################################ # Ce programme zoom.pyw calcule les coordonnées d'une image correspondant à # # un zoom dans l'ensemble de Mandelbrot en fonction du numéro de l'image # # donné par l'explorateur de l'ensemble de Mandelbrot sur Gecif.net # # # # Programme réalisé le 31 octobre 2022 par Jean-Christophe MICHEL # # www.gecif.net # # ############################################################################ def colonne(i): # cette fonction renvoie la colonne (entre 0 et 3) de la portion i (0<=i<=15) return i % 4 #**************************************************************************** def ligne(i): # cette fonction renvoie la ligne (entre 0 et 3) de la portion i (0<=i<=15) if i in [0,1,2,3]: return 0 if i in [4,5,6,7]: return 1 if i in [8,9,10,11]: return 2 if i in [12,13,14,15]: return 3 #**************************************************************************** # Ensemble de Mandelbrot complet : x_min=-2.61458333330719 x_max=1.33333333332000 y_min=-1.56250000000000 y_max=1.39843749997039 image="5FD76" niveau=len(image)-1 largeur_x=(x_max-x_min)/4 largeur_y=(y_max-y_min)/4 origine_x=x_min origine_y=y_min for i in range(niveau): c=image[i] origine_x=origine_x+largeur_x*colonne(int(c,16)) origine_y=origine_y+largeur_y*ligne(int(c,16)) largeur_x=largeur_x/4 largeur_y=largeur_y/4 c=image[-1] x_min=origine_x+colonne(int(c,16))*largeur_x y_min=origine_y+ligne(int(c,16))*largeur_y x_max=x_min+largeur_x y_max=y_min+largeur_y print("# image %s :" % image) print("x_min=%.18f" % x_min) print("x_max=%.18f" % x_max) print("y_min=%.18f" % y_min) print("y_max=%.18f" % y_max)