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
仍然无法正常工作,感谢您的帮助。谢谢
设置位置时,需要设置布局内部使用的px
和py
属性。更改(并简化)示例 here.
我的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
仍然无法正常工作,感谢您的帮助。谢谢
设置位置时,需要设置布局内部使用的px
和py
属性。更改(并简化)示例 here.