2014-12-13 46 views
0

兩個節點之間的鏈接以直線形式輸入,我希望該直線在某點處彎曲,然後移動到該節點。我能怎麼做 ? 我不需要一條曲線,基本上是一條線穿過一個點,然後向另一個節點移動。在連接到節點之前通過另一個點的直線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; 
         }); 
+0

D3做這件事的方法是讓你想要移動直線的單獨點的數據。 – 2014-12-13 12:06:22

回答

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; 
    }); 
+0

謝謝Gilsha !!!! WOrks !!! – khan 2014-12-15 09:45:23