оттенок -1
HSL RGBtoHSL(RGB color){
HSL res; float red = color.red / 255.;
float green = color.green / 255.; float blue = color.blue / 255.;
float maxColor = max(max(red, green), blue); float minColor = min(min(red, green), blue);
float delta = maxColor - minColor;
res.lightness = (maxColor + minColor) / 2; if (!delta)
{ res.hue = 0;
res.saturation = 0; }
else {
res.saturation = delta / (1 - abs(2 * res.lightness - 1)); if (maxColor == red)
{ res.hue = (int)(60 * fmod((green - blue) / delta, 6));
} else if (maxColor == green)
{ res.hue = (int)(60 * ((blue - red) / delta + 2));
} else
{ res.hue = (int)(60 * ((red - green) / delta + 4));
} }
return res;}
Вот не так. Ское всего, тут целочисленное деление, r, g, b будут по 0 всё. HSL RGBtoHSL(RGB color){ HSL res; float red = color.red / 255.; float green = color.green / 255.; float blue = color.blue / 255.;
Тогда тесты надо писать...
Для начала пройтись отладчиком и проверить
Обсуждают сегодня