# lerp method

FontWeight lerp (FontWeight a, FontWeight b, double t)

Linearly interpolates between two font weights.

Rather than using fractional weights, the interpolation rounds to the nearest weight.

If both `a` and `b` are null, then this method will return null. Otherwise, any null values for `a` or `b` are interpreted as equivalent to normal (also known as w400).

The `t` argument represents position on the timeline, with 0.0 meaning that the interpolation has not started, returning `a` (or something equivalent to `a`), 1.0 meaning that the interpolation has finished, returning `b` (or something equivalent to `b`), and values in between meaning that the interpolation is at the relevant point on the timeline between `a` and `b`. The interpolation can be extrapolated beyond 0.0 and 1.0, so negative values and values greater than 1.0 are valid (and can easily be generated by curves such as `Curves.elasticInOut`). The result is clamped to the range w100–w900.

Values for `t` are usually obtained from an `Animation<double>`, such as an `AnimationController`.

## Implementation

    static FontWeight lerp(FontWeight a, FontWeight b, double t) {
      assert(t != null);
      if (a == null && b == null)
        return null;
      return values[lerpDouble(a?.index ?? normal.index, b?.index ?? normal.index, t).round().clamp(0, 8)];
    }