我的目标 - 我试图在节点被拖动后给节点计算[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(newNodes) .links(newLinks) 。开始();
我在mouseup.drag中执行此操作
仍然没有用,任何帮助表示赞赏。谢谢