d3.js - 如何通过用户交互在 d3.js 中绘制直线

标签 d3.js

我想根据用户的点击来绘制线条。也就是说,用户将单击某处的起点和某处的终点,我想在这些点之间画一条直线。无论如何,有没有办法在 d3.js 中执行此操作。可能吗?

最佳答案

是的,可以通过鼠标点击画线,可以使用e.clientXe.clientY

container.onclick = function (e) {
    xPosition[i] = e.clientX;
    yPosition[i] = e.clientY;
}

获取 X、Y 位置作为数组,并将数组传递给 SVG 线条属性

var line = svgContainer.append("line")
        .attr("x1", xPosition[i - 1])
        .attr("y1", yPosition[i - 1])
        .attr("x2", xPosition[i])
        .attr("y2", yPosition[i])

这会对您有帮助jsfiddle-draw line by click

关于d3.js - 如何通过用户交互在 d3.js 中绘制直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396687/

相关文章:

javascript - d3 : intercepting keydown events over specific elements

javascript - D3 Transform Rescale X向右跳转

javascript - d3.js 中的奇怪 "initial"值

javascript - 在 mouseenter (D3) 上放大 svg 组元素

d3.js - 仅在悬停时显示d3节点文本

javascript - D3.js:根据数据设置轴位置

javascript - d3 在插值线下填充

模拟现场投票的算法

javascript - 对于 svg :text element in Firefox 15,宽度似乎始终为零(或 NaN)

javascript - d3js 汇总嵌套的 JSON 数组并求出总值