mirror of
https://github.com/clockworkpi/PicoCalc.git
synced 2026-03-19 10:32:37 +01:00
51 lines
956 B
Lua
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)
|