Как программно в .NET перевести номер цветового кода от 0 до 140 в коды RBG?

Просто для того, чтобы увеличить @Jack Allan ответ со ссылками на документы.

Документация React basic (Quick Start) предлагает в этом случае null. Однако Booleans, Null и Undefined также игнорируются , упомянутые в Расширенном руководстве.

0
задан Doug Null 16 January 2019 в 03:11
поделиться

1 ответ

Разбейте свою шкалу на четыре части. По мере увеличения цветовой шкалы секция 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);
}
0
ответ дан glenebob 16 January 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: