Skip to content

Instantly share code, notes, and snippets.

@nilium
Created November 30, 2011 08:58
Show Gist options
  • Select an option

  • Save nilium/1408469 to your computer and use it in GitHub Desktop.

Select an option

Save nilium/1408469 to your computer and use it in GitHub Desktop.
function lerpTable(delta, table)
-- assume table is sorted according to order
local peak = #table
for index = 1,#table do
if table[index][1] >= delta then
peak = index
break
end
end
if peak == 1 or delta >= table[peak][1] then
return table[peak][2]
else
local range = table[peak][1] - table[peak - 1][1]
delta = math.max(math.min((delta - table[peak - 1][1]) / range, 1), 0)
return table[peak][2] * delta + table[peak - 1][2] * (1 - delta)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment