>╘?ллл юллюлл юЪПл ллюлюл юлюл юл юл л юлюллю ю л Пл л л л лю л л лю ююлюлллюл юлю лллл л л л л лю ююллю люл лл л лю ю Пллюлюл юллллллю юлю л юлююллл юл ППллю лППл юлюл юл ю лЪл лю ю ю ю лППЪПллл ю ю юл ЪПл юлюл юл ю лПЪППЪюлПППЪППППППППЪЪЪППППЪЪЪЪЪЪПЪЪъЪЪЪПППЪПЪПЪЪЧЪЪЪПППППЪЪЪЪЩЪЪЪЪЪПЪЪЪЪ╝ЪЪЪЪЪЪЪЪЪЪНЧЪЪЪЪОППЪЪЪЪЪМННЪЪПЪППЪЪЪЪЪЪчнЧЪЪЪЪППЪЪЪЪЪЪЪЪННЪЪЪЪЪПЪЪЪЪЪЪЪЪчКЪЪЪЪЪПЪЪЪЪЪЪЪочМЧЪЪЪЪЪЪЪЪЪЪЪчлиЧЪЪЪЪЪППЪЪЪЪЪЪъН▌лэЧЧЪЪЪЪЪППППЪЪЪЪЪЪЪО╩НлюыЙчЪЪЪЪЪЪПЪПЪЪЪЪЪЪЪОнщлллрмЧЪЪЪЪПЪПЪЪЪЪЪЪЪЪчлллллЕЪЪЪЪЪЪПЪПЪЪЪЪЪЪЪЪНкллллЛЪЪЪЪЪЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪлилллл╫ЪЪЪЪЪЪЪЪЪПППЪПЪЪЪЪЪЪЪЪЪЪЪчгллллыЪЪЪЪЪЪЪЪЪЪПППЪЪЪЪЪЪЪЪЪЪЪнлллл<ЛЪЪЪЪЪЪЪЪЪЪПППЪЪЪЪЪЪЪЪЪЪЪНйллл╪НЪЪЪЪЪЪЪЪЪЪПЪЪЪЪПЪЪОЩОЩЪЪКННН█лллтНчЪ╬ЪЪЪОЪЩЪЪПЪъЪЪЪЪЪЪнйНЪЪmДцщмкл╪ла█О-ЭЪЪЪОЧЪЪЪППЪЪЪЪЪЪЪНшчМНмзюлллллллгщцМЪЪЧОЭЪЪПЪЪЪЪЪЪЪЪщ█эННмлллллллллл╛лМОчИНщЩЪЪПЪЪЪЪЪЪЪЪНклхмллллллллллллллНчщ╨МЪЪЪПППЪЪПЪЪЪЪЪЪЪОмллнллллллллллллллМлл°нЭЪЪЪЪППЪЪЪЪЪЪЪЪЪЪ╞ил╛лллллллллллллллэллэЧЪЪПЪЪПЪЪЪЪЪЪЪЪЪЪЪО·ллллллллллллллллллллэЧЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪНчдлллллллллллллллллллыЧЪЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪОЙNшлллллллллллллллллллйЛЪЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪщэчлллллллллллллллллллл|НЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪ}фЪлллллллллллллллллллллЛЧЪЪЪЪППЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪчйллллллллллллллллллллллrЧЪЪЪППЪЪЪОЧЪЪЪЪЪЪЪЪЪЪЪЪНгллллллллллллллллллллллэЧЪЧЪЪППЪЪЪЪЩЪЪЪЪЪЪЪЪЪЪЪЪНхлллллллллллллллллллллллчЙЩЪЪЪЪЪЪЪЧЪЪЪЪНЪЪЪЪЪЪО;клллллллллллллллллллллллгМНЪЪЪЪЪЪОЛЪЪЪЪМЪЪЪЪЪЪнхлллллллллллллллллллллллллэЭЪППЪЪЪЪЪщННЪО┼ЧНЪЪЪЪН²ллллллллллллллллллллллллиЛЪЪЪЪЪЪЪЪЪЪОnщМНнИчНЪЪО>лллллллллллллллллллллллллЛЧЪЪЪЪЪЪЪЪЪЪЪН▄КНL╛чМНЪН╜ллллллллллллллллллллллллл╪ЧЪЪЪЪЪОЪЪЪЪЪЪЪЪОчкле╪╛яМННнллллллллллллллллллллллллллЧЪЪЪПЪЪЪЪЪЪЪЪлг╪ллллхБННклллллллллллллллллллллллллл{ЫЪПЪЪЪЪЪЪЪЪОчлллллллгННклллллллллллллллллллллллллл°ЪЪППЪЪЪЪЪЪЪЪЪОНчллллллллЛчллллллллллллллллллллллллллэЧЪЪЪПЪЪЪЪЪЪЪЪЪОk╗лллллллл╛щйлллллллллллллллллллллллллэЧЪЪЪПЪПЪЪЪЪЪЪЪЪЪОнллллллллллшлллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪЪЪЪъЧЪНнллллллллллэллллллллллллллллллллллллллХЧЪЪЪПЪЪЪЪЪЪЪЪЪОНННмлллллллллллллллллллллллллллллллллллллэЪЪЪППЪЪЪЪЪЪЪЪЪЪЪЧч╬Ммлллллллллл╛ллллллллллллллллллллллллллНЧЪЪППЪЪЪЪЪЪЪЪЪЪЪОнfйлллллллллллллллллллллллллллллллллллллэЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪН╫ллкллллллллллллллллллллллллллллллллллллЛЪЪЪЪПЪЪЪЪЪОЪЪОЪЪОНчйлллллллллллллллллллллллллллллллллллллллЧЪЪЪЪЪПЪллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллПЪЪЪЪЪОЪЪОЪЪОНчйлллллллллллллллллллллллллллллллллллллллЧЪЪЪЪЪПЪПЪЪЪЪЪЪЪЪЪЪЪЪН╫ллкллллллллллллллллллллллллллллллллллллЛЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪОнfйлллллллллллллллллллллллллллллллллллллэЪЪЪЪППЪЪЪЪЪЪЪЪЪЪЪЧч╬Ммлллллллллл╛ллллллллллллллллллллллллллНЧЪЪППЪЪЪЪЪЪЪЪЪОНННмлллллллллллллллллллллллллллллллллллллэЪЪЪЪЪЪЪЪЪЪЪЪъЧЪНнллллллллллэллллллллллллллллллллллллллХЧЪЪЪПЪПЪЪЪЪЪЪЪЪЪОнллллллллллшлллллллллллллллллллллллллллЭЪЪЪЪПЪЪЪЪЪЪЪЪЪОk╗лллллллл╛щйлллллллллллллллллллллллллэЧЪЪЪППЪЪЪЪЪЪЪЪЪОНчллллллллЛчллллллллллллллллллллллллллэЧЪЪПЪЪЪЪЪЪЪЪОчлллллллгННклллллллллллллллллллллллллл°ЪЪЪЪЪЪЪЪЪЪлг╪ллллхБННклллллллллллллллллллллллллл{ЫЪЪЪЪЪЪЪЪОчкле╪╛яМННнллллллллллллллллллллллллллЧЪЪЪПЪЪЪЪЪЪЪЪН▄КНL╛чМНЪН╜ллллллллллллллллллллллллл╪ЧЪЪЪЪЪОЪЪЪЪЪЪЪЪЪОnщМНнИчНЪЪО>лллллллллллллллллллллллллЛЧЪЪЪППЪЪЪЪЪщННЪО┼ЧНЪЪЪЪН²ллллллллллллллллллллллллиЛЪЪЪЪЪЪОЛЪЪЪЪМЪЪЪЪЪЪнхлллллллллллллллллллллллллэЭЪЪЪЪЪЪЧЪЪЪЪНЪЪЪЪЪЪО;клллллллллллллллллллллллгМНЪЪППЪЪЪЪЩЪЪЪЪЪЪЪЪЪЪЪЪНхлллллллллллллллллллллллчЙЩЪЪППЪЪЪОЧЪЪЪЪЪЪЪЪЪЪЪЪНгллллллллллллллллллллллэЧЪЧЪЪЪППЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪчйллллллллллллллллллллллrЧЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪ}фЪлллллллллллллллллллллЛЧЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪщэчлллллллллллллллллллл|НЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪОЙNшлллллллллллллллллллйЛЪЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪЪЪЪНчдлллллллллллллллллллыЧЪЪЪЪЪЪЪПЪЪЪЪЪЪЪЪЪЪЪО·ллллллллллллллллллллэЧЪЪЪЪППЪЪЪЪЪЪЪЪЪЪ╞ил╛лллллллллллллллэллэЧЪЪПППЪЪПЪЪЪЪЪЪЪОмллнллллллллллллллМлл°нЭЪЪЪПЪЪЪЪЪЪЪЪНклхмллллллллллллллНчщ╨МЪЪЪППЪЪЪЪЪЪЪЪщ█эННмлллллллллл╛лМОчИНщЩЪЪЪППЪЪЪЪЪЪЪНшчМНмзюлллллллгщцМЪЪЧОЭЪЪПЪъЪЪЪЪЪЪнйНЪЪmДцщмкл╪ла█О-ЭЪЪЪОЧЪЪЪЪЪПЪЪОЩОЩЪЪКННН█лллтНчЪ╬ЪЪЪОЪЩЪЪППЪЪЪЪЪЪЪЪЪЪЪНйллл╪НЪЪЪЪЪЪЪЪЪЪПЪППЪЪЪЪЪЪЪЪЪЪЪнлллл<ЛЪЪЪЪЪЪЪЪЪЪПППЪПЪЪЪЪЪЪЪЪЪЪЪчгллллыЪЪЪЪЪЪЪЪЪЪПЪПЪЪЪЪЪЪЪЪЪЪЪлилллл╫ЪЪЪЪЪЪЪЪЪППЪПЪЪЪЪЪЪЪЪНкллллЛЪЪЪЪЪЪЪЪЪПЪЪЪЪЪЪЪЪчлллллЕЪЪЪЪЪЪПЪПЪЪЪЪЪЪЪОнщлллрмЧЪЪЪЪППППЪЪЪЪЪЪЪО╩НлюыЙчЪЪЪЪЪЪППЪЪЪЪЪЪъН▌лэЧЧЪЪЪЪЪПЪЪЪЪЪЪЪчлиЧЪЪЪЪЪПЪЪЪЪЪЪЪочМЧЪЪЪЪПЪЪЪЪЪЪЪЪчКЪЪЪЪЪПЪЪЪЪЪЪЪЪННЪЪЪЪЪППЪЪЪЪЪЪчнЧЪЪЪЪПППЪЪЪЪЪМННЪЪПЪЪЪЪЪЪНЧЪЪЪЪОЪЪЪЪ╝ЪЪЪЪЪППППЪЪЪЪЩЪЪЪЪЪПППЪПЪПЪЪЧЪЪЪПЪЪъЪЪЪПППЪЪЪЪЪЪППППЪЪЪППППППППППЪПЪППЪЪПППЪПЪПППППППS -- title: Mandelbrot Viewer -- author: SirWobb79 (@admiralerkal79 via discord) -- desc: -- license: MIT License -- version: 1 -- script: lua z = {1, 1} z2 = {3, 4} res = 240 offset = {x=res/2, y=-(240-136)/2} iters = 40 xmin = -2 xmax = 2 ymin = -2 ymax = 2 function cAdd(a, b) return {a[1]+b[1], a[2]+b[2]} end function cMult(a, b) return {a[1]*b[1]-a[2]*b[2], a[1]*b[2]+a[2]*b[1]} end function cAbs(x) return math.sqrt(x[1]*x[1]+x[2]*x[2]) end function cPower(x, p) local dupe = x local result = {1, 0} for i=1, p do result = cMult(result, x) end return result end function showC(x) if x[2] >= 0 then return "("..x[1].."+"..x[2].."i)" else return "("..x[1].."-"..x[2].."i)" end end function render(pos) for x=-res/2, res/2 do a = xmin+(xmax-xmin)*(x+res/2)/res b = ymin+(ymax-ymin)*pos/res m = {a, b} z = {0, 0} k = 0 while k < iters do k = k + 1 z = cAdd(cPower(z, 2), m) --trace(z) if cAbs(z) > 2 then --k = iters+1 break end end if k == iters then pix(x+offset.x, pos+offset.y, 12) else pix(x+offset.x, pos+offset.y, 16-math.floor(k/iters * 20)) end end end function fprint(text, x, y) print(text, x+1, y, 0) print(text, x, y+1, 0) print(text, x-1, y, 0) print(text, x, y-1, 0) print(text, x, y, 12) end l = 0 workers = 3 zoom = 2/3 --cls() function TIC() --cls() --render(res/2) --local move = 0.05 --local dx = (xmax - xmin) * move --local dy = (ymax - ymin) * move local move = 10 -- pixels local dx = move / res * (xmax - xmin) local dy = move / res * (ymax - ymin) if l >= res/workers or true then if btnp(2) then -- left xmin = xmin - dx xmax = xmax - dx l = 0 end if btnp(3) then -- right xmin = xmin + dx xmax = xmax + dx l = 0 end if btnp(0) then -- up ymin = ymin - dy ymax = ymax - dy l = 0 end if btnp(1) then -- down ymin = ymin + dy ymax = ymax + dy l = 0 end end if l <= res/workers then fprint("Processing.. ("..tostring(iters)..")", 0, 0) else fprint("Ready!", 0, 6) end --for i=1, 1 do --render((l+i-1)%res) --end --l = l + 1 if l <= res/workers then render(l) for i=1, workers-1 do render(l+(res/workers)*i) end l = l + 1 end if btnp(4) then -- zoom in local cx = (xmin + xmax)/2 local cy = (ymin + ymax)/2 local scale = zoom xmin = cx + (xmin - cx)*scale xmax = cx + (xmax - cx)*scale ymin = cy + (ymin - cy)*scale ymax = cy + (ymax - cy)*scale l = 0 end if btnp(5) then -- zoom out cx = (xmin + xmax)/2 cy = (ymin + ymax)/2 scale = 1/zoom xmin = cx + (xmin - cx)*scale xmax = cx + (xmax - cx)*scale ymin = cy + (ymin - cy)*scale ymax = cy + (ymax - cy)*scale l = 0 end if btnp(6) then iters = iters * 2 l = 0 end if btnp(7) and iters > 1 then iters = iters / 2 l = 0 end --l = l%res end