From ecb841e097a0b5456f70586729e4f36f0a2776d1 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Tue, 23 Feb 2010 12:13:38 +0100 Subject: [PATCH] Commenti e precisazioni. --- NewtonFractal.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/NewtonFractal.py b/NewtonFractal.py index be1032e..afb248d 100755 --- a/NewtonFractal.py +++ b/NewtonFractal.py @@ -6,6 +6,9 @@ # divertente cambiare alpha ed eventualemnte # anche il numero di pixel dell'immagine. # +# Ovviamente, essendo scritto in python, è piuttosto +# lento, ma comunque crea le immagini in tempi +# ragionevoli. def GetNewtonConvergenceSpeed(z, maxit = 255, eps = 10e-11, alpha = 3): """ @@ -18,6 +21,9 @@ def GetNewtonConvergenceSpeed(z, maxit = 255, eps = 10e-11, alpha = 3): fz = pow(z, alpha) - 1 iterations = 0 + # Finchè non abbiamo la necessaria precisione continuiamo + # ad iterare. Usciamo solamente se sforiamo il limite che + # ci siamo dati. while (abs(fz) > eps and iterations < maxit): # Usiamo una var temporanea per non dover @@ -27,18 +33,19 @@ def GetNewtonConvergenceSpeed(z, maxit = 255, eps = 10e-11, alpha = 3): fz = t * z - 1 fpz = alpha * t - # Questo per prevenire la divisione per zero - # (tanto la nostra derivata si annulla solo lì) + # (tanto la nostra derivata si annulla solo in z=0, + # e perdere un punto non è poi tanto grave) if (fpz == 0): return maxit + # Iterazione del metodo di newton z = z - fz / fpz iterations += 1 return iterations -def Newton(size = 200): +def Newton(size = 200, filename="newton.pnm"): """ Calcola la velocità di convergenza su una rete di punti size x size sul quadrato di [-2,2]^2 attorno all'origine @@ -46,7 +53,7 @@ def Newton(size = 200): newton.pnm """ - # Delta è l'ampiezza dell'intervallo fratto il numero di + # delta è l'ampiezza dell'intervallo fratto il numero di # divisioni - 1 delta = 4 / float(size - 1) @@ -57,7 +64,7 @@ def Newton(size = 200): # Apriamo il file dove salveremo il nostro lavoro # e scriviamo l'intestazione del file PNM. - f = open("newton.pnm", 'w') + f = open(filename, 'w') f.write("P3\n") f.write(str(size) + " " + str(size) + "\n") f.write("255\n") @@ -76,4 +83,5 @@ def Newton(size = 200): if __name__ == "__main__": # Creiamo un'immagine 1024px x 1024px. - Newton (1024) + Newton (1024, "newton.pnm") + -- 2.1.4