d3-如果两个圆或点彼此靠近,则绘制平滑线

时间:2019-02-28 19:20:48

标签: d3.js svg

我想要线条流畅。目前正在绘制一个独立的圆,但是如果两个圆或两个点彼此靠近,我想做一条线。请有人帮忙用d3.js中的代码编写。任何帮助将不胜感激。或者,如果还有其他方法可以使点或圆之间的线条平滑。

const svg = d3.select('#svg');
let drawing = false;

function draw_point() {
    if (!drawing)
        return;

    const coords = d3.mouse(this);

    const c = svg.append('circle')
      .attr('cx', coords[0])
      .attr('cy', coords[1])
      .attr('r', 5)
      .style('fill','black');
}

svg.on('mousedown', () => {
    drawing = true;
});

svg.on('mouseup', () => {
    drawing = false;
});
svg.on('mousemove', draw_point);

1 个答案:

答案 0 :(得分:0)

如果只需要描述的效果,则可以使用以下svg过滤器:

video="youtube-dl -f bestvideo[height<=360]+worstaudio/worst[height<=360]"

它产生以下图像:

example image

代码示例(您可以拖动圆圈):

  <filter id="smin">

    <feGaussianBlur in="SourceGraphic"  
                    result="blur"
                    stdDeviation="3" 
                    color-interpolation-filters="sRGB"></feGaussianBlur>

    <feColorMatrix in="blur" 
                   mode="matrix" 
                   values="
                      1 0 0  0  0  
                      0 1 0  0  0 
                      0 0 1  0  0  
                      0 0 0 19 -9
                   "></feColorMatrix>
  </filter>