#!/usr/bin/env python
#
# Mandelbrot ASCII-art using Numeric Python 1.0beta1
#
# Rob Hooft, 1996. Distribute freely.
from Numeric import *
def draw(LowX, HighX, LowY, HighY, stepx=80, stepy=24, maxiter=30):
xx=arange(LowX,HighX,(HighX-LowX)/stepx)
yy=arange(HighY,LowY,(LowY-HighY)/stepy)*1j
c=ravel(xx+yy[:,NewAxis])
z=zeros(c.shape,Complex)
output=resize(array(['_'],'c'),c.shape)
for iter in range(maxiter):
z=z*z+c
finished=greater(abs(z),2.0)
c=where(finished,0+0j,c)
z=where(finished,0+0j,z)
output=where(finished,chr(66+iter),output)
return output.tostring()
if __name__ == "__main__":
print draw(-2.1, 0.7, -1.2, 1.2)
syntax highlighted by Code2HTML, v. 0.9.1