algorithm.py
changeset 0 a99535269d60
child 1 0ebb73fd094a
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/algorithm.py	Sun Jun 13 00:18:09 2010 +0200
     1.3 @@ -0,0 +1,39 @@
     1.4 +def isDivergent(f):
     1.5 +	if f == float("inf") or f == float("-inf"):
     1.6 +		return True
     1.7 +	return False
     1.8 +
     1.9 +class Cell(object):
    1.10 +	def __init__(self, c, value, iterations):
    1.11 +		self.c = c
    1.12 +		self.value = value
    1.13 +		self.iterations = iterations
    1.14 +		
    1.15 +class Mandelbrot(object):
    1.16 +	def __init__(self, range, resolution):
    1.17 +		self.range = range
    1.18 +		self.resolution = resolution
    1.19 +	def iterate(self, z, c):
    1.20 +		return z * z + c
    1.21 +	def test(self, c, max_iter):
    1.22 +		z = [0]
    1.23 +		for i in xrange(max_iter):
    1.24 +			z.append(self.iterate(z[-1], c))
    1.25 +			if isDivergent(z[-1].real) or isDivergent(z[-1].imag):
    1.26 +				break
    1.27 +		return z
    1.28 +		
    1.29 +	def resolve(self, max_iter):
    1.30 +		cells = {}
    1.31 +		x_diff = (self.range[1].real - self.range[0].real) / self.resolution[0]
    1.32 +		y_diff = (self.range[1].imag - self.range[0].imag) / self.resolution[1]
    1.33 +		c_diff = complex(x_diff, y_diff)
    1.34 +		
    1.35 +		for y in xrange(self.resolution[1]):
    1.36 +			for x in xrange(self.resolution[0]):	
    1.37 +				c = self.range[0] + c_diff * complex(x, y)
    1.38 +				print c
    1.39 +				print self.test(c, max_iter)
    1.40 +					
    1.41 +	
    1.42 +