Перевод из hsv в rgb

Есть следующий код

unsigned char region, remainder, p, q, t;

if (this->saturation == 0)
{
    red = this->value;
    green = this->value;
    blue = this->value;

    return;
}

region = this->hue / 43;
remainder = (this->hue - (region * 43)) * 6;

p = (this->value * (255 - this->saturation)) >> 8;
q = (this->value * (255 - ((this->saturation * remainder) >> 8))) >> 8;
t = (this->value * (255 - ((this->saturation * (255 - remainder)) >> 8))) >> 8;

switch (region)
{
    case 0:
    {
        red = this->value;
        green = t;
        blue = p;
    }

    break;

    case 1:
    {
        red = q;
        green = this->value;
        blue = p;
    }

    break;

    case 2:
    {
        red = p;
        green = this->value;
        blue = t;
    }

    break;

    case 3:
    {
        red = p;
        green = q;
        blue = this->value;
    }

    break;

    case 4:
    {
        red = t;
        green = p;
        blue = this->value;
    }

    break;

    default:
    {
        red = this->value;
        green = p;
        blue = q;
    }
}

На данный момент, максимальные значения hue, saturation и value 255. Как переделать этот код так, чтобы максимальное значение hue было 360, а saturation и value 100?


Ответы (0 шт):