test_mandelbrot.lua

1
-- Code originally by Luiz Henrique de Figueiredo
2
-- At http://lua-users.org/lists/lua-l/2010-10/msg00754.html
3
-- Ported to lua-xpm by Matthew Wild
4
 
5
local xpm = require "xpm";
6
 
7
local N=255
8
 
9
local pic = xpm.new(N,N);
10
 
11
for i=1,N do
12
	local y=2-4*(i-1)/(N-1)
13
	for j=1,N do
14
		local x=-2+4*(j-1)/(N-1)
15
		local xc,yc=x,y
16
		local X,Y=0,0
17
		local p=0
18
		for n=1,255 do
19
			X,Y = X^2-Y^2+xc, 2*X*Y+yc
20
			if X^2+Y^2>4 then p=n break end
21
		end
22
		pic:setpixel(j, i, ("#%02x%02x%02x"):format(p,p,p));
23
	end
24
end
25
 
26
pic:render(io.stdout);