Javascript 如何在d3中的强制布局中居中新节点

Javascript 如何在d3中的强制布局中居中新节点,javascript,d3.js,Javascript,D3.js,这不是一个新问题,我已经提到了一些解决方案,说明节点必须在重新启动布局之前将其d.x d.y参数设置为合适的值 我还创建了一个简单的示例来演示这一点。然而,现在我已经开发了一个更复杂的例子,我对结果并不满意 原因是,当您单击节点时,屏幕外会出现新的节点,并且力布局不稳定(不好),但是,一旦所有节点出现,至少会出现一次节点行为符合要求且靠近中心,从而对布局产生最小干扰 我的感觉是,要么这是我从d3中所能期望的最好结果,要么我的代码的数据模型中存在一些不一致性 代码本身旨在显示从JSON加载的较大图

这不是一个新问题,我已经提到了一些解决方案,说明节点必须在重新启动布局之前将其d.x d.y参数设置为合适的值

我还创建了一个简单的示例来演示这一点。然而,现在我已经开发了一个更复杂的例子,我对结果并不满意

原因是,当您单击节点时,屏幕外会出现新的节点,并且力布局不稳定(不好),但是,一旦所有节点出现,至少会出现一次节点行为符合要求且靠近中心,从而对布局产生最小干扰

我的感觉是,要么这是我从d3中所能期望的最好结果,要么我的代码的数据模型中存在一些不一致性


代码本身旨在显示从JSON加载的较大图形的较小子集。它允许您一次浏览一个较大的图形子集。子集集中在单击的节点上。

您在寻找什么行为?可能会有帮助。我想消除新节点的屏幕外入口,以便它们进入svg元素的中心,这将使添加的内容不太可能严重干扰强制布局。如果你现在在科克工作,你一定要工作很长时间:)请记住,如果你添加几个节点,如果它们都从同一位置开始,斥力将非常强大。您可能希望应用一些抖动,以便它们从中心开始,但不是全部在同一个位置。不,我在加拿大;)嗯,是的,很好。我还可以一次添加一个节点,节点之间有几毫秒的延迟。是的,也可以。