This commit is contained in:
Aaron Smith 2023-09-19 18:36:08 +01:00
parent d8a627c58a
commit 3eb4eb3009
2 changed files with 10 additions and 6 deletions

View file

@ -200,7 +200,7 @@ local function spring<T>(source: () -> T, period: number?, damping_ratio: number
return function()
track(output)
return output.cache
end
end, data
end
local function step_springs(dt: number)
@ -224,6 +224,9 @@ local function step_springs(dt: number)
local ff_123 = u_123*-c
local ff_456 = u_456*-c
--assert(math.abs(fs_123.X) >= (math.abs(ff_123.X)), "damping exceeds restoring")
-- calculate acceleration step
local dv_123 = (fs_123 + ff_123)*dt
local dv_456 = (fs_456 + ff_456)*dt

View file

@ -40,7 +40,7 @@ local function main()
local effect = vide.effect
local value = source(MAX)
local sprung = spring(value, 1, 0.3)
local sprung, data = (spring :: any)(value, 1, 19.16)
effect(function()
local v = sprung()
@ -48,14 +48,15 @@ local function main()
local reset = "\27[H\27[2J" -- ANSI clear terminal
local offset = string.rep("\n", MAX - fv + OFFSET)
local bar = testkit.color.gray(remainder_to_block(v - fv) .. "\n" .. string.rep(BLOCK .. "\n", fv))
print(reset .. offset .. bar)
local num = "\n" .. v
print(reset .. offset .. bar .. num)
end)
local elapsed = 0
local T = 1.5
local elapsed = T/2
repeat local dt = step()
vide.step(dt)
local T = 3
elapsed += dt
while elapsed >= T do
elapsed -= T