Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import division
- import curses
- range = xrange
- ITOCHAR = {5:'@', 4:'O', 3:'*', 2:'.', 1:'`', 0:' '}
- def mandelbrotTest(c):
- ''''Tests to see if a point is is the mandelbrot set, and assigns it
- a character based on how quickly it escaped, if at all.'''
- Z = c
- i = 0
- while abs(Z) <= 2:
- if i > 500:
- break
- Z = Z ** 2 + c
- i += 1
- return ITOCHAR[i // 100]
- def main(stdscr):
- C = curses.COLS
- R = curses.LINES
- X = C - 1 if C % 2 == 0 else C # Resolution. Should be an odd number.
- Y = R - 1 if R % 2 == 0 else R
- xMid = X // 2 # This represents the axes on a complex plane.
- yMid = Y // 2
- dx = 2 / xMid # How much each cell represents in the context
- dy = 2 / yMid # of the complex plane.
- stdscr.clear()
- stdscr.refresh()
- #canvas = curses.newpad(Y,X)
- for row in range(Y):
- for col in range(X):
- x, y = (-2 + dx * col), (2 - dy * row)
- c = complex(x, y)
- stdscr.addstr(row, col, mandelbrotTest(c))
- stdscr.refresh()
- if __name__ == "__main__":
- curses.wrapper(main)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement