Просто для того, чтобы увеличить @Jack Allan ответ со ссылками на документы.
Документация React basic (Quick Start) предлагает в этом случае null
. Однако Booleans, Null и Undefined также игнорируются , упомянутые в Расширенном руководстве.
Разбейте свою шкалу на четыре части. По мере увеличения цветовой шкалы секция 1 становится красной / синей с уменьшением красного, секция 2 - сине-зеленой с усилением зеленого, секция 3 - сине-зеленой с уменьшением синего, а секция 4 - зеленой / красной с усилением красного.
Непроверенный образец ниже. Возможно, вам придется внести коррективы в зависимости от требуемой компоновки значения RGB.
private static readonly double n35 = 35;
public static int CalculateRgb(byte colorIndex)
{
if (colorIndex > 140)
{
throw new ArgumentOutOfRangeException(nameof(colorIndex));
}
byte red = 0, green = 0, blue = 0;
if (colorIndex <= 35)
{
blue = 255
red = 255 * (n35 - (double) colorIndex) / n35);
}
else if (colorIndex <= 70)
{
colorIndex -= 35;
blue = 255
green = 255 * ((double) colorIndex / 35);
}
else if (colorIndex <= 105)
{
colorIndex -= 70;
green = 255
blue = 255 * (n35 - (double) colorIndex) / n35);
}
else
{
colorIndex -= 105;
green = 255
red = 255 * ((double) colorIndex) / n35);
}
return
(red << 24) |
(green << 16) |
(blue << 8);
}