All files / math inverse-lerp.ts

100% Statements 2/2
100% Branches 2/2
100% Functions 1/1
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16                        12x 12x    
/**
 * Computes where a value sits between two numbers: the inverse of `lerp`. Not clamped.
 *
 * @param start - The value mapped to 0.
 * @param end - The value mapped to 1.
 * @param value - The value to locate.
 * @returns The interpolation factor; `0` when `start === end`.
 * @example
 * inverseLerp(0, 10, 5); // 0.5
 * inverseLerp(10, 0, 2.5); // 0.75
 */
export function inverseLerp(start: number, end: number, value: number): number {
  const span = end - start;
  return span === 0 ? 0 : (value - start) / span;
}