D3js强制布局更新节点和链接

D3js force layout update nodes and links

我的objective - 我试图在拖动节点后将计算的 [x,y] 提供给节点,以便节点根据我计算的而不是放置的位置占据位置。

相关例子- 我在 forcelayout 中看到了更新节点和链接的示例。例如,

https://gist.github.com/mbostock/1095795

http://bl.ocks.org/mbostock/1095795

我的方法(无效)-

在我的例子中,要求与上面的例子略有不同。拖动节点后(我执行 force.stop() 以避免强制布局接管拖动节点的位置分配),我根据节点的放置位置将节点重新分配给不同的 [x,y]。给它一个d.fixed。完成此操作后,我更新了我的节点。节点占据计算出的 [x.y] 位置,而不是它被放置的位置。到这一步,一切都很好。

然而,在随后拖动其他节点时(即 drag.resume() 自动启动时),在上一步中拖动的节点会根据先前放置的位置占据 [x,y]而不是基于我计算的 [x,y],它在上一步的拖动结束时很好地占据了它。

我认为力布局没有更新节点和链接。所以我用新的节点和链接更新了力布局,如下所示,

force.nodes(新节点) .链接(新链接) .start();

我在 mouseup.drag

仍然无法正常工作,感谢您的帮助。谢谢

设置位置时,需要设置布局内部使用的pxpy属性。更改(并简化)示例 here.