| 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); |