Options
All
  • Public
  • Public/Protected
  • All
Menu

Module "mix"

Index

Functions

Const bounce

  • bounce(k: number, amp: number, t: number): number
  • Parameters

    • k: number
    • amp: number
    • t: number

    Returns number

Const circular

  • circular(t: number): number

Const cosine

  • cosine(t: number): number
  • Parameters

    • t: number

    Returns number

Const cubicPulse

  • cubicPulse(w: number, c: number, t: number): number
  • Parameters

    • w: number
    • c: number
    • t: number

    Returns number

Const decimated

  • decimated(n: number, t: number): number
  • Parameters

    • n: number
    • t: number

    Returns number

Const ease

  • ease(ease: number, t: number): number
  • Exponential easing.

    easing behavior [0.0 .. ∞]

    Parameters

    • ease: number
    • t: number

      -

    Returns number

Const expFactor

  • expFactor(a: number, b: number, num: number): number
  • Computes exponential factor to interpolate from a to b over num steps. I.e. multiplying a with the returned factor will yield b after num steps. All args must be > 0.

    Parameters

    • a: number
    • b: number
    • num: number

    Returns number

Const gain

  • gain(k: number, t: number): number
  • Parameters

    • k: number
    • t: number

    Returns number

Const gaussian

  • gaussian(bias: number, sigma: number, t: number): number

Const impulse

  • impulse(k: number, t: number): number
  • Impulse generator. Peaks at t = 1/k

    Parameters

    • k: number

      impulse width (higher values => shorter impulse)

    • t: number

    Returns number

Const invCircular

  • invCircular(t: number): number

Const lens

  • lens(pos: number, strength: number, t: number): number
  • Zoomlens interpolation with customizable lens position, behavior and strength.

    remarks

    Lens position must be given in (0..1) interval. Lens strength must be in [-1,1] range. If negative, the lens will be bundling values near pos, if positive the lens has dilating characteristics and will spread values near pos towards the edges.

    Also see schlick for an alternative approach.

    example
    // interpolated position in [100..400] interval for given `t`
    y = mix(100, 400, lens(0.5, 1, t));
    
    // or build tween function via `tween()`
    f = tween(partial(lens, 0.5, 1), 100, 400);
    
    f(t)

    Parameters

    • pos: number

      lens pos

    • strength: number

      lens strength

    • t: number

      interpolation factor [0..1]

    Returns number

Const mix

  • mix(a: number, b: number, t: number): number
  • Linear interpolation without clamping. Computes a + (b - a) * t

    Parameters

    • a: number

      start value

    • b: number

      end value

    • t: number

      interpolation factor [0..1]

    Returns number

Const mixBilinear

  • mixBilinear(a: number, b: number, c: number, d: number, u: number, v: number): number
  • example
    c    d
    +----+
    |    |
    +----+
    a    b

    Parameters

    • a: number

      BL value

    • b: number

      BR value

    • c: number

      TL value

    • d: number

      TR value

    • u: number

      1st interpolation factor

    • v: number

      2nd interpolation factor

    Returns number

Const mixCubic

  • mixCubic(a: number, b: number, c: number, d: number, t: number): number
  • Parameters

    • a: number
    • b: number
    • c: number
    • d: number
    • t: number

    Returns number

Const mixCubicHermite

  • mixCubicHermite(a: number, ta: number, b: number, tb: number, t: number): number

Const mixHermite

  • mixHermite(a: number, b: number, c: number, d: number, t: number): number

Const mixQuadratic

  • mixQuadratic(a: number, b: number, c: number, t: number): number
  • Parameters

    • a: number
    • b: number
    • c: number
    • t: number

    Returns number

Const parabola

  • parabola(k: number, t: number): number
  • Parameters

    • k: number
    • t: number

    Returns number

Const schlick

  • schlick(a: number, b: number, t: number): number

Const sigmoid

  • sigmoid(bias: number, k: number, t: number): number
  • Sigmoid function for inputs arounds center bias.

    remarks

    Updated in v3.0.0 to add bias value to satisfy more use cases. Use sigmoid01 for old behavior.

    Parameters

    • bias: number

      center value (for which result = 0.5)

    • k: number

      steepness

    • t: number

      input value

    Returns number

Const sigmoid01

  • sigmoid01(k: number, t: number): number
  • Sigmoid function for inputs in [0..1] interval. Center bias = 0.5.

    Parameters

    • k: number

      steepness

    • t: number

      input value

    Returns number

Const sigmoid11

  • sigmoid11(k: number, t: number): number
  • Sigmoid function for inputs in [-1..+1] interval. Center bias = 0

    Parameters

    • k: number

      -

    • t: number

      -

    Returns number

Const sinc

  • sinc(k: number, t: number): number
  • Parameters

    • k: number
    • t: number

    Returns number

Const tangentCardinal

  • tangentCardinal(prev: number, next: number, scale?: number, ta?: number, tc?: number): number
  • Helper function for mixCubicHermite. Computes cardinal tangents based on point neighbors of a point B (not given), i.e. a (predecessor) and c (successor) and their times (defaults to uniformly spaced). The optional tension parameter can be used to scale the tangent where 0.0 produces a Cardinal spline tangent and 1.0 a Catmull-Rom (opposite to the Wikipedia ref).

    https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline

    Parameters

    • prev: number

      -

    • next: number

      -

    • Default value scale: number = 0.5

      -

    • Default value ta: number = 0

      -

    • Default value tc: number = 2

      -

    Returns number

Const tangentDiff3

  • tangentDiff3(prev: number, curr: number, next: number, ta?: number, tb?: number, tc?: number): number
  • Helper function for mixCubicHermite. Computes tangent for curr, based on 3-point finite difference, where prev & next are curr's neighbors and the tX the three points' respective time values. The latter are equally spaced by default (each 1.0 apart).

    Using this function with equal spacing of 1.0 and together with mixCubicHermite will produce same results as the somewhat optimized variant mixHermite.

    https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference

    Parameters

    • prev: number

      -

    • curr: number

      -

    • next: number

      -

    • Default value ta: number = 0

      -

    • Default value tb: number = 1

      -

    • Default value tc: number = 2

      -

    Returns number

Const tween

  • tween(f: (t: number) => number, from: number, to: number): (Anonymous function)
  • HOF interpolator. Takes a timing function f and interval [from,to]. Returns function which takes normalized time (in [0,1] range) as single arg and returns interpolated value.

    Parameters

    • f: (t: number) => number

      -

        • (t: number): number
        • Parameters

          • t: number

          Returns number

    • from: number

      -

    • to: number

      -

    Returns (Anonymous function)

Generated using TypeDoc