ixfx
    Preparing search index...

    Function interpolatorStepped

    • Returns a function that interpolates from A to B. It steps through the interpolation with each call to the returned function. This means that the incrementAmount will hinge on the rate at which the function is called. Alternatively, consider @ixfx/numbers.interpolatorInterval which steps on the basis of clock time.

      // Interpolate from 0..1 by 0.01
      const v = interpolatorStepped(0.01, 100, 200);
      v(); // Each call returns a value closer to target
      // Eg: 100, 110, 120, 130 ...

      Under the hood, it calls interpolate with an amount that increases by incrementAmount each time.

      When calling v() to step the interpolator, you can also pass in new B and A values. Note that the order is swapped: the B (target) is provided first, and then optionally A.

      const v = interpolatorStepped(0.1, 100, 200); // Interpolate 100->200
      v(300, 200); // Retarget to 200->300 and return result
      v(150); // Retarget 200->150 and return result

      This allows you to maintain the current interpolation progress.

      Parameters

      • incrementAmount: number

        Amount to increment by

      • a: number = 0

        Start value. Default: 0

      • b: number = 1

        End value. Default: 1

      • startInterpolationAt: number = 0

        Starting interpolation amount. Default: 0

      • Optionaloptions: Partial<BasicInterpolateOptions>

        Options for interpolation

      Returns (retargetB?: number, retargetA?: number) => number