# Original Python: # from pyx import * # # # Mandelbrot calculation contributed by Stephen Phillips # # # Mandelbrot parameters # re_min = -2 # re_max = 0.5 # im_min = -1.25 # im_max = 1.25 # gridx = 100 # gridy = 100 # max_iter = 10 # # # Set-up # re_step = (re_max - re_min) / gridx # im_step = (im_max - im_min) / gridy # d = [] # # # Compute fractal # for re_index in range(gridx): # re = re_min + re_step * (re_index + 0.5) # for im_index in range(gridy): # im = im_min + im_step * (im_index + 0.5) # c = complex(re, im) # n = 0 # z = complex(0, 0) # while n < max_iter and abs(z) < 2: # z = (z * z) + c # n += 1 # d.append([re, im, n]) # # # Plot graph # g = graph.graphxy(height=8, width=8, # x=graph.axis.linear(min=re_min, max=re_max, title=r"$\Re(c)$"), # y=graph.axis.linear(min=im_min, max=im_max, title=r'$\Im(c)$')) # g.plot(graph.data.points(d, x=1, y=2, color=3, title="iterations"), # [graph.style.density(gradient=color.rgbgradient.Rainbow)]) # g.writeEPSfile() # g.writePDFfile() # g.writeSVGfile() using PyX using LaTeXStrings # Mandelbrot parameters re_min = -2 re_max = 0.5 im_min = -1.25 im_max = 1.25 gridx = 100 gridy = 100 max_iter = 10 # Set-up re_step = (re_max - re_min) / gridx im_step = (im_max - im_min) / gridy # Julia note: indexing is opposite of what would be idiomatic Julia d = zeros(gridx*gridy, 3) # Compute fractal for re_index in 0:(gridx-1) re = re_min + re_step * (re_index + 0.5) for im_index in 0:(gridy-1) im = im_min + im_step * (im_index + 0.5) c = complex(re, im) n = 0 z = complex(0, 0) while n < max_iter && abs(z) < 2 z = (z * z) + c n += 1 end d[re_index*gridy + im_index + 1, :] = [re, im, n] end end # Plot graph g = graph.graphxy(height=8, width=8, x=graph_axis.linear(min=re_min, max=re_max, title=L"$\Re(c)$"), y=graph_axis.linear(min=im_min, max=im_max, title=L"$\Im(c)$")) plot(g, graph_data.points(d, x=1, y=2, color=3, title="iterations"), [graph_style.density(gradient=color_rgbgradient.Rainbow)]) writeEPSfile(g, "density") writePDFfile(g, "density")