import math
class JuliaSet:
def __init__(self, c, n = 100):
self.c = c
self.n = n
self._d = 0.001
self._e = int(2 / self._d)
self.complexplane = [complex(r * self._d,(s * self._d)) for s in range(-self._e, self._e,1) for r in range(-self._e,self._e,1)]
def juliamap(self, z):
return (z ** 2 ) + self.c
def iterate(self, z):
for m in range(1, self.n+1):
z = self.juliamap(z)
if (z.real**2 + z.imag**2) > 4:
return m
if m >= self.n:
return 0
def set_spacing(self, d):
self._d = d
self._e = int(2 / self._d)
self.complexplane = [complex(r * self._d,(s * self._d)) for s in range(-self._e, self._e,1) for r in range(-self._e,self._e,1)]
def generate(self):
set = self.set = [self.iterate(i) for i in self.complexplane]
return set