【问题标题】:d3 force layout - positioning nodesd3力布局——定位节点
【发布时间】:2016-11-01 13:53:49
【问题描述】:

我目前正在使用 D3.js,它是强制图形布局。我正在努力让节点正确定位,它们似乎重叠我想要每个子节点之间有一个明显的差距。

我有一个示例,说明我当前正在进行的工作与代码的样子(几乎直接取自 d3 示例,但半径更大)

https://jsbin.com/pajopizawi/edit?html,output

我做错了什么导致子节点重叠?

【问题讨论】:

  • 你可以通过增加负电荷来增加节点之间的排斥力。 -600 的值似乎效果不错。
  • 您对“子节点”的使用让我觉得问题可能是您使用的是力导向图,当 d3 树布局之一是更好的选择。它们旨在为每个节点提供自己的空间。如果您的结构是一棵树,请尝试使用它。
  • @mrgraham 我完全同意,但我希望能够拖动以隔离连接并具有内在效果。
  • 如何给 -ve 电荷和重力像这样jsbin.com/dibicazewi/1/edit?html,output

标签: javascript d3.js


【解决方案1】:

我知道我来晚了,但这不就是“forceCollide”的用途吗?我将节点的半径设置为 6,而 forceCollide 16 似乎可以很好地分开它们。

.force("collide", d3.forceCollide(16));

虽然这是在 V4 中,但在您的示例中似乎不起作用。

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 2017-03-17
    • 2014-10-27
    • 1970-01-01
    • 2015-09-21
    • 2013-02-28
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多