D3树图曲线起始位置

时间:2016-12-09 08:00:07

标签: javascript d3.js projection

摘要

使用下面的示例,我创建了一个数据库驱动的树视图,其中包含信息块而不是圆形节点。

Interactive d3.js tree diagram

请参阅下面的示例屏幕截图:

Example image of block nodes

这个想法是让线从块结束的地方开始。我认为它与以下功能有关:

// Custom projection
var linkProjection = d3.svg.diagonal()
   .source(function (d) {
       return { "y": d.source.y, "x": d.source.x };
   })
   .target(function (d) {
       return { "y": d.target.y, "x": d.target.x };
   })
   .projection(function (d) {
       return [d.y, d.x];
   });

// Enter any new links at the parent's previous position.
link.enter().insert("path", "g")
   .attr("class", "link")
   .style("fill", "none")
   .style("stroke", "#d1d6da")
   .style("stroke-width", "1")
   .attr("d", function (d) {
       var s = { x: source.x0, y: source.y0 };
       var t = { x: source.x0, y: source.y0 };
       return linkProjection({ source: s, target: t });
});

我尝试将块宽度添加到y坐标,但是虽然它从绘图的正确位置开始,但它再次在块的开头处结束。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

没有更多的代码,很难说,但我认为它与坐标系有关。 x,y指向我认为的物体的中心。因此,您必须将y向右移动一半的长度。

即。父母先前的位置(x,y)指向父母的中心。