summaryrefslogtreecommitdiff
path: root/mandelgen.py
blob: 266b7b948212a25f87f77aa96884400592f9d733 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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())