Я хотел бы в форму СВГ с градиентом, который идет от hsl(0, 100%, 50%)
к hsl(360, 100%, 50%)
, где оттенок работает плавно от 0 -> 360, чтобы создать что-то вроде:Как интерполировать оттенок с помощью градиента svg?
Когда я делаю градиент с эти стопорные цвета:
<linearGradient id="Gradient1">
<stop offset="0%" stop-color="hsl(0, 100%, 50%)"/>
<stop offset="100%" stop-color="hsl(360, 100%, 50%)"/>
</linearGradient>
... это приводит к полностью красным градиентом
Я сумел hack around слегка добавив мор e:
<linearGradient id="Gradient2">
<stop offset="0%" stop-color="hsl(0, 100%, 50%)"/>
<stop offset="1%" stop-color="hsl(3, 100%, 50%)"/>
<stop offset="2%" stop-color="hsl(7, 100%, 50%)"/>
<!-- Lots more -->
<stop offset="98%" stop-color="hsl(352, 100%, 50%)"/>
<stop offset="99%" stop-color="hsl(356, 100%, 50%)"/>
</linearGradient>
Хотя кажется довольно уродливым.
Есть ли лучший способ сделать это?
да, это довольно близко с 10 остановками (здесь сравнение 2, 10 и 100 - https://jsfiddle.net/8q0jnu54/2/ - вы теряете немного яркости желтого цвета, и, похоже, он слегка перемещается). Мне было интересно, есть ли другой способ изначально сделать эту интерполяцию, а не полагаться на создание остановок в другом месте? – benjaminbenben