Files
PicoCalc/Bin/PicoCalc SD/lua/bubble.lua
2026-03-01 15:25:55 +08:00

51 lines
956 B
Lua

-- Bubble Universe
-- inspired by https://forum.clockworkpi.com/t/bubble-universe/19907
local w = 320
local w2 = w/2
local rad = 70
local n = 20
local nc = 120
local step = 2
local r = math.pi*2/n
local x,y,t = 0,0,6
local u,v,px,py
local res = 100
local sint = {}
for i = 1, math.floor(math.pi*2*res) do
sint[i] = math.sin(i/res)
end
local function fsin(i)
return sint[(math.floor(i*res)%#sint)+1]
end
local function fcos(i)
return sint[((math.floor((math.pi/2-i)*res))%#sint)+1]
end
draw.enableBuffer(2)
while true do
if keys.getState(keys.esc) then break end
draw.clear()
for i = 0, n-1 do
for c = 0, nc-1, step do
u = fsin(i+y)+fsin(r*i+x)
v = fcos(i+y)+fcos(r*i+x)
x = u + t
y = v
px = u * rad + w2
py = y * rad + w2
draw.point(px, py,
--draw.rectFill(px, py, 2, 2,
colors.fromRGB(math.floor(63+i/n*192),
math.floor(63+c/nc*192),168))
end
end
t=t+0.02
draw.blitBuffer()
end
draw.enableBuffer(false)