summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknolax <1339802534.kk@gmail.com>2018-06-27 01:20:59 -0400
committerknolax <1339802534.kk@gmail.com>2018-06-27 01:20:59 -0400
commit452d5c1f84a5894865591ebc6072d8369ae2dc9f (patch)
tree9332f3978ef989071c491443493ec732eeca65d6
Initial commit, but don't be fooled, thi stuff is 4 years oldHEADmaster
-rwxr-xr-xmandelgen.py102
-rwxr-xr-xmandelgen2.py83
2 files changed, 185 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())
diff --git a/mandelgen2.py b/mandelgen2.py
new file mode 100755
index 0000000..26a3baa
--- /dev/null
+++ b/mandelgen2.py
@@ -0,0 +1,83 @@
+#!/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 canvas
+ canvas = Canvas()
+ else :
+ global img
+ global pix
+ img = Image.new('RGB', (xm, ym))
+ pix = img.load()
+def end () :
+ if (args.b) :
+ print(canvas.frame())
+ else :
+ img.save("mandel","PNG")
+ return
+print("initializing....")
+init()
+print("crunching....")
+for xi in range(0, xm, 1) :
+ for yi in range(0, ym, 1) :
+ c = complex(xt + (xs * xi), yt - (ys * yi))
+ n = complex(0, 0)
+ t = thr
+ for i in range(0, thr, 1) :
+ if (math.sqrt((n.real * n.real) + (n.imag * n.imag)) >= 2 ) :
+ t = i
+ break
+ else :
+ n = n * n + c
+ if (args.b) :
+ if (t != thr) :
+ canvas.unset(xi, yi)
+ else :
+ canvas.set(xi, yi)
+ else :
+ color = int(255 - (255 * t / thr))
+ pix[xi, yi] = (color, color, color)
+ if (xi % 100 == 0) :
+ print(xi)
+ print(t)
+print("saving....\b")
+end()