Javascript d3力量导向布局中的神秘力量?

Javascript d3力量导向布局中的神秘力量?,javascript,d3.js,force-layout,Javascript,D3.js,Force Layout,我正在尝试逐步组合两组节点,以模拟一种使用强制布局的临时饼图。为了做到这一点,我使用了两组通过链接分别连接到两个固定的、动画的焦点节点的节点。当它们与相同数量的节点组合时,效果很好 见: 然而,当节点组之间有很大的差异时(比如说,1/100),似乎有一些神秘的额外力量施加在远离较大组的较小节点组上 见: 有人知道这种额外的力量来自哪里吗 我尝试过的一些不起作用的事情: +强制alpha保持为1 +减少摩擦我相信你看到的是重力的缺乏。如果没有重力,节点将不会倾向于屏幕的中心。我可以通过设置forc

我正在尝试逐步组合两组节点,以模拟一种使用强制布局的临时饼图。为了做到这一点,我使用了两组通过链接分别连接到两个固定的、动画的焦点节点的节点。当它们与相同数量的节点组合时,效果很好

见:

然而,当节点组之间有很大的差异时(比如说,1/100),似乎有一些神秘的额外力量施加在远离较大组的较小节点组上

见:

有人知道这种额外的力量来自哪里吗

我尝试过的一些不起作用的事情: +强制alpha保持为1
+减少摩擦

我相信你看到的是重力的缺乏。如果没有重力,节点将不会倾向于屏幕的中心。我可以通过设置
force.gravity(1)
并将节点的电荷设置为-100,为您的edge案例获得所需的结果

首先,我什么都不知道。这样一来:它看起来并不像是一种拒绝或额外的力量。看起来当你看到一两个红色节点时,它们的强度不足以迫使自己进入蓝色圆点。我想向科比提一个类似的问题——你能详细解释一下你所说的“神秘力量”是什么意思吗?我确实觉得第一个动画看起来比较慢,但那只是因为红色节点和蓝色节点需要彼此分开,而第二个动画只有一个节点在一旁。我提到的神秘力量是,在第二个版本中,只有一个红色节点,它似乎在蓝色节点上方悬停了很长一段距离。在第一个版本中没有观察到这种效果,我试图找出删除它的一些原因。我想把红点和蓝点撞起来,就像第一个版本一样。所有节点都施加了相同的弹簧力和电荷力,因此我想不出还有什么会导致这种行为。更新:有趣的是,如果将节点添加到第一个焦点,这些力似乎应用正确。只有当孤立节点连接到第二个焦点时,它才会比第一个焦点上的其他节点漂得更远。这只是将所有节点压缩到中心。如果我想达到这个效果,我会将所有节点链接到一个焦点。或者更好的是,只需添加具有重力的所有节点,而不用担心将节点链接到单个焦点。但是我想把两组节点合并成一个大的节点组,而不需要这种神秘的额外力量。然后可能以后,将这些节点组合并到其他组中。也许这更能说明我的意思。也许可以更好地说明为什么我首先要这样做,并且在动画结束时节点合并时显示有问题的工件。