interpolateColor¶
Эта страница была перенесена из старой версии документации.
В процессе переписывания документации некоторые страницы могут быть немного устаревшими.
Сопоставляет входной диапазон с выходными цветами с помощью линейной интерполяции. Работает аналогично функции interpolate
, но на выходе получается цветовая строка в нотации rgba(r, g, b, a)
.
Аргументы¶
value
[Float]¶
Значение из входного диапазона, которое должно быть отображено на значение из выходного диапазона.
input range
[Float[]]¶
Массив Floats, содержащий точки, указывающие на диапазон входного значения. Значения в диапазоне ввода должны возрастать.
output range
[(string | number)[]]¶
Массив цветов (строки типа 'red'
, '#ff0000'
, 'rgba(255, 0, 0, 0.5)'
и т.д.), содержащий точки, которые указывают на диапазон выходного значения. Количество точек должно быть не меньше, чем диапазон входных значений.
color space
[String]¶
Может быть либо 'RGB'
, либо 'HSV'
.
options
[Object]¶
Объект, содержащий параметры цветовой интерполяции. Допустимые параметры перечислены ниже:
Параметры | По умолчанию | Описание |
---|---|---|
gamma | 2.2 | Параметр гаммы, используемый при гамма-коррекции. |
useCorrectedHSVInterpolation | true | См. раздел Options explanation |
Возвраты¶
interpolateColor
возвращает цвет после интерполяции из выходного диапазона в формате rgba(r, g, b, a)
.
Опции объяснения¶
-
gamma - Цвета в web/мобильном пространстве выражаются в цветовом пространстве sRGB, которое является гамма-корректированным, то есть нелинейным.
Операции над цветами в нелинейном пространстве, такие как сложение, будут давать неверные результаты. Например, интерполированный цвет может оказаться темнее, чем должен быть. Поэтому при интерполяции мы сначала преобразуем sRGB в линейное пространство, а затем преобразуем результат обратно в нелинейное пространство sRGB. Гамма-коррекция зависит от устройства, но для большинства устройств для преобразования из нелинейного пространства в линейное повышение компонентов до значения гамма=2,2 является хорошим приближением. Если вы хотите отключить это, вы всегда можете установить gamma=1. Хорошая статья на эту тему.
-
useCorrectedHSVInterpolation - Иногда (например, при интерполяции от желтого к пурпурному) HSV-интерполяция проходит через множество других оттенков.
Эта опция позволяет уменьшить количество оттенков в таких случаях, рассматривая оттенки HSV как круговой спектр и выбирая кратчайшую дугу (так, вместо перехода от желтого к пурпурному через зеленый и синий, он проходит только через красный).
Пример¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|