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())
|