In [ ]:
%img inline
%config InlineBackend.figure_format = 'retina'
from numpy import complex, array
from PIL import Image
import colorsys
WIDTH = 1024
def i_to_rgb(i):
color = 255 * array(colorsys.hsv_to_rgb(i/255.0, 1.0, 0.5))
return tuple(color.astype(int))
def mandelbrot(x, y):
c0 = complex(x, y)
c = 0
for i in range(1, 1000):
if abs(c) > 2:
return i_to_rgb(i)
c = c * c + c0
return (0, 0, 0)
img = Image.new('RGB', (WIDTH, int(WIDTH/2)))
pixels = img.load()
for x in range(img.size[0]):
print ("%.2f%%" % (x/WIDTH * 100.0))
for y in range(img.size[1]):
pixels[x,y] = mandelbrot((x - (0.75 * WIDTH))/(WIDTH/4),
(y - (WIDTH/4))/(WIDTH/4))
img.show()
0.00%
0.10%
0.20%
0.29%
0.39%
0.49%
0.59%
0.68%
0.78%
0.88%
0.98%
1.07%
1.17%
1.27%
1.37%
1.46%
1.56%
1.66%
1.76%
1.86%
1.95%
2.05%
2.15%
2.25%
2.34%
2.44%
2.54%
2.64%
2.73%
2.83%
2.93%
3.03%
3.12%
3.22%
3.32%
3.42%
3.52%
3.61%
3.71%
3.81%
3.91%
4.00%
4.10%
4.20%
4.30%
4.39%
4.49%
4.59%
4.69%
4.79%
4.88%
4.98%
5.08%
5.18%
5.27%
5.37%
5.47%
5.57%
5.66%
5.76%
5.86%
5.96%
6.05%
6.15%
6.25%
6.35%
6.45%
6.54%
6.64%
6.74%
6.84%
6.93%
7.03%
7.13%
7.23%
7.32%
7.42%
7.52%
7.62%
7.71%
7.81%
7.91%
8.01%
8.11%
8.20%
8.30%
8.40%
8.50%
8.59%
8.69%
8.79%
8.89%
8.98%
9.08%
9.18%
9.28%
9.38%
9.47%
9.57%
9.67%
9.77%
9.86%
9.96%
10.06%
10.16%
10.25%
10.35%
10.45%
10.55%
10.64%
10.74%
10.84%
10.94%
11.04%
11.13%
11.23%
11.33%
11.43%
11.52%
11.62%
11.72%
11.82%
11.91%
12.01%
12.11%
12.21%
12.30%
12.40%
12.50%
12.60%
12.70%
12.79%
12.89%
12.99%
13.09%
13.18%
13.28%
13.38%
13.48%
13.57%
13.67%
13.77%
13.87%
13.96%
14.06%
14.16%
14.26%
14.36%
14.45%
14.55%
14.65%
14.75%
14.84%
14.94%
15.04%
15.14%
15.23%
15.33%
15.43%
15.53%
15.62%
15.72%
15.82%
15.92%
16.02%
16.11%
16.21%
16.31%
16.41%
16.50%
16.60%
16.70%
16.80%
16.89%
16.99%
17.09%
17.19%
17.29%
17.38%
17.48%
17.58%
17.68%
17.77%
17.87%
17.97%
18.07%
18.16%
18.26%
18.36%
18.46%
18.55%
18.65%
18.75%
18.85%
18.95%
19.04%
19.14%
19.24%
19.34%
19.43%
19.53%
19.63%
19.73%
19.82%
19.92%
20.02%
20.12%
20.21%
20.31%
20.41%
20.51%
20.61%
20.70%
20.80%
20.90%
21.00%
21.09%
21.19%
21.29%
21.39%
21.48%
21.58%
21.68%
21.78%
21.88%
21.97%
22.07%
22.17%
22.27%
22.36%
22.46%
22.56%
22.66%
22.75%
22.85%
22.95%
23.05%
23.14%
23.24%
23.34%
23.44%
23.54%
23.63%
23.73%
23.83%
23.93%
24.02%
24.12%
24.22%
24.32%
24.41%
24.51%
24.61%
24.71%
24.80%
24.90%
25.00%
25.10%
25.20%
25.29%
25.39%
25.49%
25.59%
25.68%
25.78%
25.88%
25.98%
26.07%
26.17%
26.27%
26.37%
26.46%
26.56%
26.66%
26.76%
26.86%
26.95%
27.05%
27.15%
27.25%
27.34%
27.44%
27.54%
27.64%
27.73%
27.83%
27.93%
28.03%
28.12%
28.22%
28.32%
28.42%
28.52%
28.61%
28.71%
28.81%
28.91%
29.00%
29.10%
29.20%
29.30%
29.39%
29.49%
29.59%
29.69%
29.79%
29.88%
29.98%
30.08%
30.18%
30.27%
30.37%
30.47%
30.57%
30.66%
30.76%
30.86%
30.96%
31.05%
31.15%
31.25%
31.35%
31.45%
31.54%
31.64%
31.74%
31.84%
31.93%
32.03%
32.13%
32.23%
32.32%
32.42%
32.52%
32.62%
32.71%
32.81%
32.91%
33.01%
33.11%
33.20%
33.30%
33.40%
33.50%
33.59%
33.69%
33.79%
33.89%
33.98%
34.08%
34.18%
34.28%
34.38%
34.47%
34.57%
34.67%
34.77%
34.86%
34.96%
35.06%
35.16%
35.25%
35.35%
35.45%
35.55%
35.64%
35.74%
35.84%
35.94%
36.04%
36.13%
36.23%
36.33%
36.43%
36.52%
36.62%
36.72%
36.82%
36.91%
37.01%
37.11%
37.21%
37.30%
37.40%
37.50%
37.60%
37.70%
37.79%
37.89%
37.99%
38.09%
38.18%
38.28%
38.38%
38.48%
38.57%
38.67%
38.77%
38.87%
38.96%
39.06%
39.16%
39.26%
39.36%
39.45%
39.55%
39.65%
39.75%
39.84%
39.94%
40.04%
40.14%
40.23%
40.33%
40.43%
40.53%
40.62%
40.72%
40.82%
40.92%
41.02%
41.11%
41.21%
41.31%
41.41%
41.50%
41.60%
41.70%
41.80%
41.89%
41.99%
42.09%
42.19%
42.29%
42.38%
42.48%
42.58%
42.68%
42.77%
42.87%
42.97%
43.07%
43.16%
43.26%
43.36%
43.46%
43.55%
43.65%
43.75%
43.85%
43.95%
44.04%
44.14%
44.24%
44.34%
44.43%
44.53%
44.63%
44.73%
44.82%
44.92%
45.02%
45.12%
45.21%
45.31%
45.41%
45.51%
45.61%
45.70%
45.80%
45.90%
46.00%
46.09%
46.19%
46.29%
46.39%
46.48%
46.58%
46.68%
46.78%
46.88%
46.97%
47.07%
47.17%
47.27%
47.36%
47.46%
47.56%
47.66%
47.75%
47.85%
47.95%
48.05%
48.14%
48.24%
48.34%
48.44%
48.54%
48.63%
48.73%
48.83%
48.93%
49.02%
49.12%
49.22%
49.32%
49.41%
49.51%
49.61%
49.71%
49.80%
49.90%
50.00%
50.10%
50.20%
50.29%
50.39%
50.49%
50.59%
50.68%
50.78%
50.88%
50.98%
51.07%
51.17%
51.27%
51.37%
51.46%
51.56%
51.66%
51.76%
51.86%
51.95%
52.05%
52.15%
52.25%
52.34%
52.44%
52.54%
52.64%
52.73%
52.83%
52.93%
53.03%
53.12%
53.22%
53.32%
53.42%
53.52%
53.61%
53.71%
53.81%
53.91%
54.00%
54.10%
54.20%
54.30%
54.39%
54.49%
54.59%
54.69%
54.79%
54.88%
54.98%
55.08%
55.18%
55.27%
55.37%
55.47%
55.57%
55.66%
55.76%
55.86%
55.96%
56.05%
56.15%
56.25%
56.35%
56.45%
56.54%
56.64%
56.74%
56.84%
56.93%
57.03%
57.13%
57.23%
57.32%
57.42%
57.52%
57.62%
57.71%
57.81%
57.91%
58.01%
58.11%
58.20%
58.30%
58.40%
58.50%
58.59%
58.69%
58.79%
58.89%
58.98%
59.08%
59.18%
59.28%
59.38%
59.47%
59.57%
59.67%
59.77%
59.86%
59.96%
60.06%
60.16%
60.25%
60.35%
60.45%
60.55%
60.64%
60.74%
60.84%
60.94%
61.04%
61.13%
61.23%
61.33%
61.43%
61.52%
61.62%
61.72%
61.82%
61.91%
62.01%
62.11%
62.21%
62.30%
62.40%
62.50%
62.60%
62.70%
62.79%
62.89%
62.99%
63.09%
63.18%
63.28%
63.38%
63.48%
63.57%
63.67%
63.77%
63.87%
63.96%
64.06%
64.16%
64.26%
64.36%
64.45%
64.55%
64.65%
64.75%
64.84%
64.94%
65.04%
65.14%
65.23%
65.33%
65.43%
65.53%
65.62%
65.72%
65.82%
65.92%
66.02%
66.11%
66.21%
66.31%
66.41%
66.50%
66.60%
66.70%
66.80%
66.89%
66.99%
67.09%
67.19%
67.29%
67.38%
67.48%
67.58%
In [ ]:
Content source: anandha2017/udacity
Similar notebooks: