getHue static method

double getHue(
  1. RgbColor rgbColor
)

Calculates the rgbColors hue on a 0 to 1 scale, as used by the HSL, HSP, and HSB color models.

Implementation

static double getHue(RgbColor rgbColor) {
  double hue;

  final rgb = rgbColor.toFactoredList();

  final red = rgb[0];
  final green = rgb[1];
  final blue = rgb[2];

  final max = rgb.reduce(math.max);
  final min = rgb.reduce(math.min);
  final difference = max - min;

  if (max == min) {
    hue = 0;
  } else {
    if (max == red) {
      hue = (green - blue) / difference + ((green < blue) ? 6 : 0);
    } else if (max == green) {
      hue = (blue - red) / difference + 2;
    } else {
      hue = (red - green) / difference + 4;
    }

    hue /= 6;
  }

  return hue;
}