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

卡尼(Kani Lakshmikanthan)

我的目标-我试图在拖动节点后将计算出的[x,y]赋予节点,以使节点根据我计算出的位置而不是放置位置来占据位置。

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

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

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

我的方法(不起作用)-

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

但是,在随后拖动其他节点时(这是drag.resume()自动启动时),在上一步中拖动的节点基于[x,y]占据的位置取决于它早先放置的位置,而不是基于我的计算得出的[ [x,y],它很好地占据了上一步的拖动末端。

我认为部队布局不会随着节点和链接而更新。因此,我使用以下新节点和链接更新了部队布局,

force.nodes(newNodes).links(newLinks).start();

我在mouseup.drag中执行此操作

仍然无法正常工作,任何帮助表示赞赏。谢谢

拉尔斯·科特霍夫(Lars Kotthoff)

设置位置时,您还需要设置pxpy属性,布局内部也会使用属性。此处更改(简化)了示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章