require "bitmap" local max_iters = 300 local zoom = 1 local move_x = 0 local move_y = 0 local cx = -0.7 local cy = 0.27015 local w = 800 local h = 600 local bmp = bitmap.of(w, h, color.black, "Julia set") local function create_julia() for x = 0, w - 1 do for y = 0, h - 1 do local zx = 1.5 * (x - w / 2) / (0.5 * zoom * w) + move_x local zy = (y - h / 2) / (0.5 * zoom * h) + move_y local i = max_iters while zx * zx + zy * zy < 4 and i > 0 do local tmp = zx * zx - zy * zy + cx zy = 2 * zx * zy + cy zx = tmp i -= 1 end local c = bitmap.rgbColor(i % 256, i % 256, (i * 8) % 256) bmp:set(x, y, c) end end end create_julia() bmp:view()