d3强制定向布局中的神秘力量?
Posted
技术标签:
【中文标题】d3强制定向布局中的神秘力量?【英文标题】:Mysterious forces in d3 force directed layout? 【发布时间】:2013-08-13 08:19:39 【问题描述】:我正在尝试逐步组合两组节点,以使用强制布局来模拟一种临时饼图。为此,我使用了两组节点,它们分别通过链接连接到两个固定的动画焦点节点。当它们与 ruffly 相同数量的节点组合时,效果很好。
见:http://bl.ocks.org/vicapow/6191895
但是,当节点组之间存在很大差异时(例如 1 / 100 ),似乎有一些神秘的额外力施加在远离较大组的较小节点组上
见:http://bl.ocks.org/vicapow/6191896
有没有人知道这种额外的力量可能来自哪里?
我尝试过的一些方法不起作用: + 强制 alpha 保持 1 + 减少摩擦
【问题讨论】:
首先 - 我什么都不知道。顺便说一句:它看起来并不像拒绝或额外的力量。看起来当你有一两个红色节点时,它们的强度不足以迫使自己进入蓝点。 我想对 Kobi 做一个类似的提及——你能详细说明你所说的“神秘力量”是什么意思吗?我确实觉得第一个动画看起来更慢,但这仅仅是因为红色节点和蓝色节点需要将自己定位为彼此分开,而不是第二个动画只有一个节点靠边。 我提到的神秘力量是,在只有一个红色节点的第二个版本中,它似乎在蓝色节点上方盘旋了很远的距离。在第一个版本中没有观察到这种效果,我试图找出一些为什么要删除它。我希望像第一个版本一样将红点撞到蓝点上。所有节点都施加了相同的弹簧和充电力,所以我想不出还有什么会导致这种行为。 更新:有趣的是,如果将节点添加到第一个焦点,则似乎可以正确应用力。只有当孤独节点连接到第二个焦点时,它才会比第一个焦点上的其他节点漂浮得更远。 see this example 【参考方案1】:我相信您所看到的是缺乏重力。如果没有重力,节点将不会倾向于屏幕中心。通过设置force.gravity(1)
并将节点的费用设置为-100,我能够为您的边缘情况获得所需的结果。 https://bl.ocks.org/david4096/6264697
【讨论】:
这只是将所有节点压缩到中心。如果我想达到这种效果,我会将所有节点链接到一个焦点。或者更好的是,只需添加所有具有重力的节点,而不用担心将节点连接到单个焦点。但相反,我希望将两组节点组合成一大组节点,而不需要这种神秘的额外力量。然后也许稍后,将这些节点组合并到其他组中。也许这更好地说明了我的意思。 link 也许this visualization 可以更好地说明我为什么要首先这样做,并且还显示了在动画结束时节点组合时有问题的工件。以上是关于d3强制定向布局中的神秘力量?的主要内容,如果未能解决你的问题,请参考以下文章
如何使 D3 中的标签和节点强制布局可点击以导航到 URL?