D3.js d3-力图,其中移动节点为重心

D3.js d3-力图,其中移动节点为重心,d3.js,force-layout,D3.js,Force Layout,目前我有一个力图,图的中心是每个节点的引力。请参见此图: 我想做的是让所有的橙色节点都有一个向自身的拉力,所有较小的节点聚集在最近的橙色节点周围。它与类似,只是我不想要固定点,因为橙色节点可以四处移动。似乎在固定点示例中,节点由于其索引而被吸引到它们所在的位置;我想让它们被一种力量吸引 我当前生成此力的代码如下: force = d3.layout.force() .charge (d) -> if isMassive d then d.size*100 else d.size

目前我有一个力图,图的中心是每个节点的引力。请参见此图:

我想做的是让所有的橙色节点都有一个向自身的拉力,所有较小的节点聚集在最近的橙色节点周围。它与类似,只是我不想要固定点,因为橙色节点可以四处移动。似乎在固定点示例中,节点由于其索引而被吸引到它们所在的位置;我想让它们被一种力量吸引

我当前生成此力的代码如下:

 force = d3.layout.force()
    .charge (d) -> if isMassive d then d.size*100 else d.size
    .chargeDistance (d) -> d.size*10
    .gravity 0.01
    .friction 0.01
    .size [Constants.width, Constants.height]
    .on "tick", tick
(作为参考,橙色节点通过isMassive检查)


我试着给橙色节点一个负电荷,也给较小的节点一个负电荷,而它们的反面都是正电荷。我还尝试过任意数量的重力/摩擦/等组合(范围从0到1,中间有几个数字)。我还想补充一点,我在这个系统中没有链接。

重力设置为0,橙色节点的电荷设置为大值。您确实需要要相互交互的节点之间的链接,但不需要绘制它们。@Larskothoff我希望根本没有链接,因为这意味着总有一个“父”节点。我希望它更松散一些,这样较小的节点就会被较大的节点吸引。我认为这是不可能的?听起来你需要链接。那么有没有一种方法可以自动将一个节点链接到附近一个更大的节点?显然d3不支持这个,但我不知道最好的处理方法。你可以简单地将所有东西链接到其他东西。