如何在d3和SVG中创建阴影路径?

sakurashinken

我创建具有阴影效果的图表,并希望有类似效果的线图一个苹果的健康套件,除了没有最后一个数据点后急剧垂直线。从本质上讲,我希望在线条形状下方的阴影下着色,而不是像非常模糊的阴影一样。如何在d3中实现?

保罗·勒博

除了图线之外,您还需要创建一个放置在该线后面的多边形。给该多边形一个线性渐变。渐变颜色是白色,从顶部的半透明到底部的全透明不等。

下面的演示。我将离开您将其转换为d3。

    <svg width="750" height="384">
      <defs>
        <!-- The below-the-graph gradient fill -->
        <linearGradient id="grad" x2="0" y2="1">
          <stop offset="0%" stop-color="white" stop-opacity="0.5"/>
          <stop offset="100%" stop-color="white" stop-opacity="0"/>
        </linearGradient>

        <filter id="blur">
          <feGaussianBlur stdDeviation="10" />
        </filter>
      </defs>

      <!-- The orange background -->
      <rect x="10" y="10" width="734" height="368" rx="14" fill="#ff7744"/>

      <!-- This transform just moves the graph from the origin (top left) onto the orange background -->
      <g transform="translate(80,134)">

        <!-- Same shape as the graph but adds points at bottom right and bottom left to complete the polygon -->
        <polygon fill="url(#grad)" filter="url(#blur)"
                 points="0,127, 90,85, 180,115, 270,47, 360,143, 450,0
                         450,177, 0,177"/>

        <!-- The white graph line goes last (on top) -->
        <polyline fill="none" stroke="white" stroke-width="3"
                  points="0,127, 90,85, 180,115, 270,47, 360,143, 450,0"/>
      </g>
      
    </svg>

更新

抱歉,我想念您关于模糊线下渐变的观点。我在示例中添加了一些模糊,以向您展示模糊滤镜可以做什么。这只是一个快速的技巧,您可以看到它是如何流血的。要解决此问题,您需要制作一个遮罩或剪切路径以遮罩线条上方的区域,以使出血不可见。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Qt / QML中实现3D深度和阴影?

来自分类Dev

如何在d3 javascript中为SVG文本元素分配唯一ID

来自分类Dev

在d3中访问SVG路径长度

来自分类Dev

如何在d3中为路径及其点设置动画

来自分类Dev

如何在D3中移动SVG的位置?

来自分类Dev

如何获得SVG路径形状以缩放D3?

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

如何在D3 svg.text对象中显示希腊字母?

来自分类Dev

在D3中将阴影添加到svg图像

来自分类Dev

使用视框时如何在D3中阻止路径模糊/消失?

来自分类Dev

d3从JSON路径创建svg

来自分类Dev

当应用蒙版时,由d3(d3.svg.arc)创建的SVG路径元素消失

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在Drawdrect D3中选择SVG对象

来自分类Dev

如何在SVG中为D3画笔创建路径

来自分类Dev

如何在D3中创建连接节点的曲线

来自分类Dev

如何在d3中创建的图例中匹配文本标签

来自分类Dev

如何在D3中对齐文本和标签

来自分类Dev

如何在Coffee脚本中的svg中使用“ g”来旋转d3中的对象?

来自分类Dev

如何在CSS3中创建阴影边框?

来自分类Dev

如何在d3线中创建折弯

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

为D3和SVG元素创建动画

来自分类Dev

当应用蒙版时,由d3(d3.svg.arc)创建的SVG路径元素消失

来自分类Dev

如何在D3.js中操作特定的SVG路径

来自分类Dev

D3 svg 路径重叠

来自分类Dev

如何在SVG / D3中围绕其质心旋转文本(垂直翻转)?

来自分类Dev

如何在 vue-cli 中创建 d3 svg?

来自分类Dev

更新 svg 和 d3 中的路径样式