SVG渐变作为折线描边背景与绝对位置

时间:2015-04-20 14:08:29

标签: svg polyline linear-gradients

是否能够设置应用于折线的渐变背景的绝对位置?

例如,当我设置渐变时:

<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" />

(折线有最大/最小位置点)

结果还可以:

enter image description here

但是,当折线平坦时:

enter image description here

绿色要高得多。由于这是彩色图表,我需要不断寻找背景,而不管折线的绘制方式。

1 个答案:

答案 0 :(得分:4)

如果您希望在用户空间中应用渐变,那么可以通过这样表达渐变来实现:

<linearGradient id="grad1" gradientUnits="userSpaceOnUse" x1="0"
                y1="350" x2="0" y2="220">

请参阅fiddle

x1,y1,x2和y2中的值将相对于当前用户空间坐标系,因此如果使用百分比,它们将相对于最近的视口,而不是相对于使用渐变的形状的边界框。有关详细信息,请参阅svg specification