Linearly interpolate between two colors.
If either color is null, this function linearly interpolates from a transparent instance of the other color.
Values of t
less that 0.0 or greater than 1.0 are supported. Each
channel will be clamped to the range 0 to 255.
This is intended to be fast but as a result may be ugly. Consider
HSVColor
or writing custom logic for interpolating colors.
Source
static Color lerp(Color a, Color b, double t) { if (a == null && b == null) return null; if (a == null) return _scaleAlpha(b, t); if (b == null) return _scaleAlpha(a, 1.0 - t); return new Color.fromARGB( lerpDouble(a.alpha, b.alpha, t).toInt().clamp(0, 255), lerpDouble(a.red, b.red, t).toInt().clamp(0, 255), lerpDouble(a.green, b.green, t).toInt().clamp(0, 255), lerpDouble(a.blue, b.blue, t).toInt().clamp(0, 255), ); }