在连接到节点d3.js之前通过另一个点的线

时间:2014-12-13 10:11:14

标签: javascript d3.js

两个节点之间的链接作为一条直线输入,我希望该线在某一点弯曲,然后移动到该节点。我能怎么做 ? 我不需要曲线,基本上是一条线穿过一个点然后移向另一个节点。

我用

    link.attr("x1", function (d) {
                            return d.source.x;
                        })
                        .attr("y1", function (d) {
                            return d.source.y;
                        })
                        .attr("x2", function (d) {
                            return d.target.x;
                        })
                        .attr("y2", function (d) {
                            return d.target.y;
                        });

1 个答案:

答案 0 :(得分:1)

使用svg路径。

    path.attr("d", function (d) {
        var sX = d.source.x, sY =d.source.y;
        var tX = d.target.x, tY =d.target.y;
        var mX = (d.source.x+d.target.x)/2+45, mY =(d.source.y+d.target.y)/2+45; //Third point
        return "M "+sX+","+sY+" L"+mX+","+mY+" L"+tX+","+tY;
    });