import { assertEquals } from "jsr:@std/assert"
assertEquals(lerp( 0, 100, 0.5), 50)
assertEquals(lerp(50, 100, 0.5), 75)
assertEquals(lerp(50, 100, 0.0), 50)
assertEquals(lerp(50, 100, 1.0), 100)
assertEquals(lerp(50, 100, 1.5), 125)
assertEquals(lerp(50, 100, -0.5), 25)
assertEquals(lerp(50, 100, -1.0), 0)
assertEquals(lerp(50, 100, -2.5), -75)
get the linearly interpolated value between two scalar points
x0
andx1
, decided by unit interval timet
.in other words:
lerp(x0, x1, 0.0) === x0
lerp(x0, x1, 1.0) === x1
x0 < lerp(x0, x1, t > 0.0 && t < 1.0) < x1
this lerp function does not clamp the time parameter
t
to the closed UnitInterval[0.0, 1.0]
. to ensure clamping oft
to the unit interval, use the lerpClamped function.