interpolateRgb function

Interpolator<ArgbColor> interpolateRgb(
  1. ArgbColor a,
  2. ArgbColor b
)

Creates an RGB color interpolator between a and b.

Implementation

Interpolator<ArgbColor> interpolateRgb(ArgbColor a, ArgbColor b) {
  final ar = a.red;
  final ag = a.green;
  final ab = a.blue;
  final aa = a.alpha;

  final br = b.red - ar;
  final bg = b.green - ag;
  final bb = b.blue - ab;
  final ba = b.alpha - aa;

  return (double t) => ArgbColor.fromARGB(
        (aa + ba * t).round().clamp(0, 255),
        (ar + br * t).round().clamp(0, 255),
        (ag + bg * t).round().clamp(0, 255),
        (ab + bb * t).round().clamp(0, 255),
      );
}