我正在基于Bernhard Zuba 的 D3.js Organizational Chart在 D3 中创建一个组织结构图。组织结构图模拟了一个组织,其中任何给定的人(由白色方块表示)可能有一百左右的人紧随其后(一个非常扁平的树结构,黑色贝塞尔曲线代表每个父子关系)。
问题是子节点和父节点之间的链接往往都聚集在一起,导致一条非常粗的黑线具有非常平缓的斜率,这可能有点碍眼。
我用来生成链接的函数如下:
// Diagonal function
var diagonal = d3.svg.diagonal()
.source(function (d) {
return {
x: d.source.x + (rectW / 2),
y: d.source.y + rectH - 10
};
})
.target(function (d) {
return {
x: d.target.x + (rectW / 2),
y: d.target.y + 10
};
})
.projection(function (d) {
return [d.x, d.y];
});
这里,rectW
是每个节点的宽度,是每个节点rectH
的高度。
我想做的是对用于生成链接的贝塞尔函数进行一些细微的调整。具体来说,我想稍微展平控制点,以便曲线起点和终点的曲线更具戏剧性。如果有人能告诉我如何改变用于diagonal()
生成贝塞尔曲线的函数,我可以弄清楚其余的。