-- genuary #31 2023
-- remix one of your previous works
-- by carson kompon
gridw=22
gridh=22
dotsize=2
angle=0
spinam=2/(60*16)
hgw=gridw\2
hgh=gridh\2
pal({[0]=143,15,8,137,9,139,3,131,1,140,12},1)
camera(-64,-64)
::_::
cls(1)
local gridspacing=4+(sin(t()/16)+1)*4
local pts={}
for i=-hgw,hgw do
for j=-hgh,hgh do
local px=i*gridspacing
local py=j*gridspacing
local dist=sqrt((px*px)+(py*py))
local dir=atan2(px,py)+angle
add(pts,{
x=cos(dir)*dist,
y=sin(dir)*dist/2,
z=4+sin(t()+(i-j)/16+(j-i)/5)*4
})
end
end
local lwr=flr(#pts/2)+1
local upr=#pts
local i,j,tmp
while true do
if lwr>1 then
lwr-=1
tmp=pts[lwr]
else
tmp=pts[upr]
pts[upr]=pts[1]
upr-=1
if upr==1 then
pts[1]=tmp
break
end
end
i=lwr
j=lwr*2
while j<=upr do
if j<upr and pts[j].y<pts[j+1].y then
j+=1
end
if tmp.y<pts[j].y then
pts[i] = pts[j]
i=j
j+=i
else
j=upr+1
end
end
pts[i]=tmp
end
for i=1,#pts do
pt=pts[i]
fillp(▒)
circfill(pt.x,pt.y,dotsize+(gridspacing-4)/4,0)
fillp(█)
circfill(pt.x,pt.y-pt.z,dotsize,flr(2.5+pt.z))
end
angle+=spinam
flip()
goto _