32 lines
810 B
Text
32 lines
810 B
Text
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()
|