Нарисуйте цветное колесо с альфа-и насыщенными значениями в C#

Пример Нарисуйте цветное колесо цвета в C# показывает, как рисовать цветовое колесо. В этом примере вы можете использовать полосы прокрутки для изменения значений альфа (непрозрачность) и насыщенности (серости) цветов.

На самом деле это довольно простое изменение. Прежде чем вычислять цвета окружающего пространства, используемые для окраски точек на краю круга, программа использует следующий код, чтобы получить значения альфа и насыщенности.

// Получите альфу и насыщенность.
int alpha = hscrAlpha.Value;
int sat = hscrSaturation.Value;

В предыдущей версии программы использовался следующий код для расчета интерполированных цветов по окружности круга. Код, выделенный синим цветом, дает альфа-компоненты для цветов начала и конца интерполяции.

InterpolateColors(surround_colors, ref index,
    1 * num_pts, 255, 255, 0, 0, 255, 255, 0, 255);

В новой версии используется следующий код для расчета цветов интерполяции. Синий и красный код выделяют значения альфа и насыщенности, соответственно

InterpolateColors(surround_colors, ref index,
    1 * num_pts, alpha, sat, 0, 0, alpha, sat, 0, sat);

Значение alpha просто передается в метод InterpolateColors, поэтому все цвета, которые он генерирует, имеют заданное значение альфа.

Значение насыщенности дает максимальное значение, используемое красным, зеленым или синим компонентом любого цвета. Это удаляет цвет из этих компонентов и приближает результат к черному. Результат «серый». Если вы установите насыщенность на минимальное значение 0, все цвета станут черными. Цветовое колесо показывает штрихование черного круга до белого цвета посередине.

Если вы посмотрите внимательно на изображение, вы увидите, что насыщенность не достигает максимума, поэтому цвета не достигают максимальной яркости. Например, колесо не показывает чистый красный, зеленый, синий или желтый.

Источник: http://csharphelper.com/blog/2015/09/draw-a-color-wheel-with-alpha-and-saturation-values-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector