algorithm.py
author Eugen Sawin <sawine@me73.com>
Sun, 13 Jun 2010 00:18:09 +0200
changeset 0 a99535269d60
child 1 0ebb73fd094a
permissions -rw-r--r--
Initial.
     1 def isDivergent(f):
     2 	if f == float("inf") or f == float("-inf"):
     3 		return True
     4 	return False
     5 
     6 class Cell(object):
     7 	def __init__(self, c, value, iterations):
     8 		self.c = c
     9 		self.value = value
    10 		self.iterations = iterations
    11 		
    12 class Mandelbrot(object):
    13 	def __init__(self, range, resolution):
    14 		self.range = range
    15 		self.resolution = resolution
    16 	def iterate(self, z, c):
    17 		return z * z + c
    18 	def test(self, c, max_iter):
    19 		z = [0]
    20 		for i in xrange(max_iter):
    21 			z.append(self.iterate(z[-1], c))
    22 			if isDivergent(z[-1].real) or isDivergent(z[-1].imag):
    23 				break
    24 		return z
    25 		
    26 	def resolve(self, max_iter):
    27 		cells = {}
    28 		x_diff = (self.range[1].real - self.range[0].real) / self.resolution[0]
    29 		y_diff = (self.range[1].imag - self.range[0].imag) / self.resolution[1]
    30 		c_diff = complex(x_diff, y_diff)
    31 		
    32 		for y in xrange(self.resolution[1]):
    33 			for x in xrange(self.resolution[0]):	
    34 				c = self.range[0] + c_diff * complex(x, y)
    35 				print c
    36 				print self.test(c, max_iter)
    37 					
    38 	
    39