SVG 渐变作为具有绝对位置的折线描边背景
SVG gradient as polylines stroke background with absolute position
是否可以设置应用于折线的渐变背景的绝对位置?
比如当我设置渐变时:
<filter id="black-glow">
<feColorMatrix type="matrix" values=
"0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 1 0" />
<feGaussianBlur stdDeviation="3" result="coloredBlur" />
<feMerge>
<feMergeNode in="coloredBlur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
折线的笔划:
<polyline points="50,350 ... 350,239" style="fill:none;" stroke="url(#grad1)" stroke-width="3" stroke-linecap="round" />
(折线有 max/min 个位置点)
结果正常:
但是,当折线是平的时:
绿色要高很多。由于这是彩色图表,我需要实现不断查看背景,独立于折线的绘制方式。
如果你想在用户空间中应用渐变,那么可以通过如下方式表达渐变:
<linearGradient id="grad1" gradientUnits="userSpaceOnUse" x1="0"
y1="350" x2="0" y2="220">
参见fiddle。
x1、y1、x2 和 y2 中的值将相对于当前用户空间坐标系,因此如果您使用百分比,它们将相对于最近的视口,而不是使用形状的边界框坡度。详情见svg specification。
是否可以设置应用于折线的渐变背景的绝对位置?
比如当我设置渐变时:
<filter id="black-glow">
<feColorMatrix type="matrix" values=
"0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 1 0" />
<feGaussianBlur stdDeviation="3" result="coloredBlur" />
<feMerge>
<feMergeNode in="coloredBlur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
折线的笔划:
<polyline points="50,350 ... 350,239" style="fill:none;" stroke="url(#grad1)" stroke-width="3" stroke-linecap="round" />
(折线有 max/min 个位置点)
结果正常:
但是,当折线是平的时:
绿色要高很多。由于这是彩色图表,我需要实现不断查看背景,独立于折线的绘制方式。
如果你想在用户空间中应用渐变,那么可以通过如下方式表达渐变:
<linearGradient id="grad1" gradientUnits="userSpaceOnUse" x1="0"
y1="350" x2="0" y2="220">
参见fiddle。
x1、y1、x2 和 y2 中的值将相对于当前用户空间坐标系,因此如果您使用百分比,它们将相对于最近的视口,而不是使用形状的边界框坡度。详情见svg specification。