>µ?ÝÎÌÐÜÌ îßÐÌ þÎÌÎÌàÌ ÞÝÝÜÐÌ ÝÐàÝà ÀÌàÐ Ì àÌ ßÎÌÝÞàÝÐÞ àÝð àÞ ðàÌ ÀÌÍüÌ ÀÌÞ Ð àÝðÌðÌÜÞÍ ÀÌÐÞ ðÐÌ Þ ÝÍüÌüàíþÌìÞÐíàÌ ß Ì àÞ Ì îîàÝÌìÝ Ðýà ïÌ ÞíÞ ÞÞ ðíßÞþÐíÞþßýðÐÐ ðþà ðàÝÝ ÝàíßàÌîðÝß Ì ïÐÝîÐ àÝ ÿàíàÐíÌîÌÐÌÐíÌÞÌ ÐÌ ÝíÌ ÝàÌßÌððÍÐìàýíðàÌ ÀÌÐíÞÍìÐÌ ÎÌßíÎ ÝàÌ ÐÌÐ ÝÌÜÐÌ ÎÜðÌìÝàÞ ÝíÞÍüîàÌìààÞ àÝÐààíàÞÐÌàÝÐÝïÌ ÀÌðîðþÝðàíÐ àÌ îÐÌîîÍÜÝîàÍÜÐíàÞ ß ÐíàÐ àÝß îïß àÝß Ðýàà ðß ÐíðÏÌÐíÞ ÎÌðÐíÐíÝÞ ÐìÐýîÐÌðÝàÐýàÀÌîÐÜàÐÌÐíðÝÍÜàÐÌðÀÌðÀÌðÐÌ ÍÜíß ÀÌÐ ÐýÐÌÐÌ ÏìàÝÐ ðÐíÐ ÎÌîàÝíÎÌðàÌàààÐýàÐÌ Þ ÝàÌ Ð ÞÐ ÝàðÿÝ Ð ðàßðððÜïÝß ÐìàïÐÌ îíÝÐ ÎÌàïïÐÌ ÐÌ àÝàïðÎÌðÌ îÐýÐÌ îíðÌ àà àÌ îÍÜðÜàÀÜðÌ ààÍ ÍÜÎÌÍ Í àÐÜÐ ÐÜàÌìÎÜÏÌààÍüÍÜþÀÌààÎìÎ ïÐ Íí ÌìàîÍÜðÌÜíÐÌÍìîààÍÜÌìýàíîÐíÌÌà ÞÎÜÐ ß àÐÝðàÐíÜÌÜÝ ðÍÌÐíÐýÝîÍÜàÐìðÌ ðÌ ð ÌìðÌ àÐìàÍ ÞðÎÌÞ àîÎÜàÎÜÐ ððîà ÍüïÐíÍÜàÝÍÐ ÌìÝÐíÎìÀÌþàÌ ÐíþÍ ÞàýÀÌÎÜàÌ àÝðîàÐîÐÝðíÍÜîÀÌàÌàÀïàýðÎìÀÌÐÌ ðÏüÐíÐÌ ÍÜîîàîÍÜàðÌîàïÝàÐÌ ÐÌÝðïðÝàÌ ÀÌÝðÌîîîÏÜàÜàÐÌ Ýß ÍÌàÐÌ ÝÌìðàÞÎÜàîÌìîÌ ðÝðàÝàÝß îÌ ÝÝÐ Ì àÝÝðÞ ÝÝÞîðÐýðàí àÌìÝþïÐ îÀÌÌìÐàÐÜÀÌðÐÜß Þ ÀÌàÝïÀÌÐÐÌðÐ ÀÌîðàÍÜààÝàÍÜÐ îßðÞÐÌ îðÐ ÐíÞ ÝÝÝÐÌ àýðàÐÐÌ ÝÞÞ ÝààÐÝààÐÌ îÞ ðÝÝ à Í ïÝààÝàÐÌÝÌ ÞÍìàîÌìÝðÏüÝÐÌÝàÌ ðÌÜàÝÍ ÝþÍÜß ÝÌ îÍìàÝÐíîÍÜÐ ÍÜðàÐýàÞ ÍÜÐÌàïÐ ðÀÌààþàÀìÐÌàïþÍÌÞ ðîîîÎÜÞ àýàðÏÌÝß ÝÝÎÌàíÞÝàÍÜÝÐÌ ÐíÐíÝ ïÎÜÍÜÐÌ à ÐÌíÍÜÐ ààíÝÐíÐÌÍ ÐÌ ÐìíÍÜÀÌðà ÀÌÌìððÝîàÝàÍÜÀÌðÐÌÌÌÜàÐÌíÞÞ Ï àíðàÎÌïàÀÌ ÐÐÌìðîÀÜàðàÌàÞ ÌìàÝðÐÝîàýÝ ÐÞ þÀÌàííÝÐíðÞÐÌÀÌàÐÝÝÐýà àÀÌ àíÐíýÐíÝÐÌÐ ÝÐ ÝßÐíïÝîðÎ àîþÞ àíàðððÿÝÌÜÍüîàÌîàÐÝàÝààÍìÌìÐÌ à ðÌ àÍ ÐÌßíðÌ îî ðîÍ àîÐÜïßÐÝðþß àÎÜÀÌÝ àíîÍÜÐýðÍÌÐÌÞÍÜÐ ÀìÝÝÐíàÌ àýðÝàÝàÌ ÐÝîÿíðíÝàýÞààíàÞ ÀÌàíàÌ ÐÝàÞ ÀÌÀÌà àÌ ððàÝÀÌÐíÞÝàíðà ÝÝððàÝÞàÝÀÌààîàÝîÀÌïààÌð àÐÌÐÜààÐÌ ÐÝÍìðÝÐÌ ðÌÝ îÐÐÌàíÌÜàÝàÜÐÌ ÞîàÐþàÎÜ þàÌ þàÜààÞ ÐîîïþÐÌ Ü-- title: Anti-aliased circle -- author: Sava -- desc: test -- license: MIT License -- script: lua stars={} function BOOT() for i=1, 500 do stars[#stars+1]={x=math.random()*250-5, y=math.random()*136, z=math.random()} end end function TIC() cls(0) local draw = {{}, {}, {}, {}} for i=1, #stars do local s = stars[i] s.x=s.x+s.z/40 if s.x > 245 then s.x=-5 end draw[(s.z*4)//1+1][#draw[(s.z*4)//1+1]+1]={s.x, s.y, (4-s.z*4+12)} end for i=1, #draw do for j=1, #draw[i] do local rad=(i)/2 local x, y = draw[i][j][1], draw[i][j][2] for rx=math.floor(x-rad), math.ceil(x+rad) do for ry=math.floor(y-rad), math.ceil(y+rad) do local d = dist(x, y, rx+0.5, ry+0.5) if d <= rad then local dr = d/rad pix(rx, ry, (4-(i-1)*(1-math.pow(dr, 5))+12-0.5)) end end end --circ(draw[i][j][1], draw[i][j][2], (i-1)//2, (4-i+12)) end end end function dist(x, y, x1, y1) return math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)) end