summaryrefslogtreecommitdiff
path: root/mandelgen.py
diff options
context:
space:
mode:
Diffstat (limited to 'mandelgen.py')
-rwxr-xr-xmandelgen.py102
1 files changed, 102 insertions, 0 deletions
diff --git a/mandelgen.py b/mandelgen.py
new file mode 100755
index 0000000..266b7b9
--- /dev/null
+++ b/mandelgen.py
@@ -0,0 +1,102 @@
+#!/bin/python
+#written for py3.5.2
+from drawille import Canvas
+import cmath
+import math
+import curses
+from PIL import Image
+import argparse
+def init () :
+ global args
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-xm", help="max x",
+ type=int)
+ parser.add_argument("-ym", help="max y",
+ type=int)
+ parser.add_argument("-xt", help="tran x",
+ type=float)
+ parser.add_argument("-yt", help="tran y",
+ type=float)
+ parser.add_argument("-s", help="scale",
+ type=float)
+ parser.add_argument("-b", help="braile",
+ action="store_true")
+ parser.add_argument("-t", help="threshhold of calcs",
+ type=int)
+ args = parser.parse_args()
+ global xt
+ xt = args.xt
+ global yt
+ yt = args.yt
+ global xs
+ xs = args.s
+ global ys
+ ys = args.s
+ global xm
+ xm = args.xm
+ global ym
+ ym = args.ym
+ global thr
+ thr = args.t
+ global vals
+ vals = [[]]
+ if (args.b) :
+ global screen
+ screen = curses.initscr()
+ curses.start_color()
+ curses.noecho()
+ curses.cbreak()
+ screen.keypad(1)
+ xm = screen.getmaxyx()[1] * 2
+ ym = screen.getmaxyx()[0] * 3
+ global canvas
+ canvas = Canvas()
+ else :
+ global img
+ global pix
+ img = Image.new('RGB', (xm, ym), (255, 255, 255))
+ pix = img.load()
+ global recm
+ recm = [[]]
+ for xi in range(0, xm, 1) :
+ vals.append([])
+ recm.append([])
+ for yi in range(0, ym, 1) :
+ vals[xi].append(complex(0, 0))
+ recm[xi].append(thr)
+ if (args.b) :
+ canvas.set(xi,yi)
+def end () :
+ if (args.b) :
+ curses.echo()
+ curses.nocbreak()
+ screen.keypad(0)
+ curses.endwin()
+ else :
+ img.save("mandel","PNG")
+ return
+init()
+for i in range(0, thr, 1) :
+ for xi in range(0, xm, 1) :
+ for yi in range(0, ym, 1) :
+ tval = vals[xi][yi]
+ if (recm[xi][yi] == thr) :
+ if (math.sqrt(math.pow(tval.real, 2.0) + math.pow(tval.imag, 2.0)) >= 2 ) :
+ recm[xi][yi] = i
+ else :
+ c = complex(xt + (xs * xi), yt - (ys * yi))
+
+ vals[xi][yi] = vals[xi][yi] * vals[xi][yi] + c
+for xi in range(0, xm, 1) :
+ for yi in range(0, ym, 1) :
+ if (args.b) :
+ if (recm[xi][yi] != thr) :
+ canvas.unset(xi, yi)
+ else :
+ color = 255 - int(255.0/float(thr) * float(recm[xi][yi]))
+ pix[xi, yi] = (color, color, color)
+#screen.addstr(0, 0, canvas.frame())
+#screen.refresh()
+end()
+if (args.b) :
+ print(canvas.frame())