D3力导向图形成一个特定的形状?

时间:2015-09-23 20:31:02

标签: javascript d3.js

我想知道是否有办法让D3力图形成特定的形状。这就是我的意思。这就是图表现在的样子。

enter image description here

我想要的是能够让节点形成如下形状:

enter image description here (超专业绘画技巧)

所以我希望所有节点都在黑线内,形成这个形状。有没有办法在d3内做到这一点?

1 个答案:

答案 0 :(得分:0)

不,你不能直接使用D3力布局。它不允许任何其他约束。您可以做的是在tick处理函数中自行实施此布局:

force.on("tick", function() {
  // iterate over all nodes, check if they're in a position they shouldn't be in
  // if so, adjust the position
});

那就是说,在这种情况下你几乎肯定不需要力布局。正如评论中所建议的那样,沿着您想要的形状手动定位节点会更容易。同样,D3没有支持这样做。