В Vega и Vega-Lite градиентная заливка для линейных и площадных
графиков реализуется через преобразование локальных координат
графического примитива в пространство параметров градиента. При работе с
stroke или fill градиентом система учитывает
направление геометрии, её длину и толщину контура, формируя двумерную
систему координат: вдоль пути и поперёк него.
Такой подход позволяет управлять тем, как цвет распределяется:
Именно для этих двух направлений используются параметры gradientLength и gradientThickness.
gradientLength определяет масштабирование градиента вдоль направления геометрии.
В терминах внутреннего рендеринга Vega это параметр, задающий длину проекции градиента на путь (path-aligned coordinate space). Он влияет на то, насколько быстро или медленно меняются цвета вдоль линии.
Ключевые свойства поведения:
В линейных графиках gradientLength фактически
нормализует расстояние вдоль пути:
L_{grad}
где увеличение gradientLength уменьшает плотность
изменения цвета.
Важный эффект проявляется на кривых:
gradientThickness управляет распределением градиента поперёк линии, то есть по нормали к направлению движения.
Фактически это второй ортогональный масштаб в системе координат градиента.
Поведение параметра:
Геометрически это можно представить как масштабирование нормальной оси:
T_{grad} strokeWidth gradientThickness
При увеличении значения:
При уменьшении значения:
Оба параметра работают совместно, образуя двумерное пространство нормализации градиента:
Их комбинация формирует матрицу преобразования координат градиента:
=Это преобразование влияет на:
Особенно важно учитывать это при:
В линейных графиках Vega градиент часто используется для отображения:
При корректной настройке:
gradientLength создаёт «медленную» цветовую
динамику;gradientLength усиливает локальные
изменения.Поперечная стабилизация через gradientThickness
позволяет избежать визуальных артефактов при увеличении
stroke-width.
В площадных графиках градиент применяется к заполнению области, и поведение параметров становится более выраженным:
gradientLength влияет на вертикальные или
горизонтальные переходы цвета вдоль оси времени или категории;gradientThickness определяет плавность заполнения от
линии графика к базовой оси.При больших значениях gradientThickness область
приобретает равномерный цветовой градиент без резких переходов у
границ.
При масштабировании сцены Vega оба параметра остаются в локальном пространстве координат и не зависят напрямую от transform матрицы SVG/Canvas.
Это приводит к следующим эффектам:
При экстремальных значениях параметров система начинает демонстрировать нелинейные эффекты:
gradientLength приводит к почти
монохромному штриху;gradientLength вызывает «шумовой»
эффект;gradientThickness размывает структуру
линии;gradientThickness делает градиент узким
и концентрированным вдоль центра.Эти эффекты связаны с дискретизацией пути и интерполяцией цвета вдоль сегментов кривой.