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

D3.js D3js强制布局更新节点和链接,d3.js,data-visualization,D3.js,Data Visualization,我的目标是: 我试图在拖动节点后将计算出的[x,y]赋给节点,这样节点就可以根据我计算的内容而不是放置位置来占据位置 有关例子- 我在forcelayout中看到了更新节点和链接的示例。比如说, 我的方法(不起作用)- 在我的例子中,要求与上面的示例略有不同。拖动一个节点后(我执行force.stop()以避免force布局接管被拖动节点的位置分配),我根据节点的放置位置将节点重新分配到不同的[x,y]。给它一个d。完成此操作后,我将更新节点。节点占据计算的[x.y]位置,而不是它被丢弃的位

我的目标是: 我试图在拖动节点后将计算出的[x,y]赋给节点,这样节点就可以根据我计算的内容而不是放置位置来占据位置

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

我的方法(不起作用)-

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

但是,在其他节点的后续拖动中(即drag.resume()自动启动时),在上一步中拖动的节点将根据其先前被拖放的位置而不是在上一步拖动结束时计算的[x,y]占据[x,y]

我认为force布局不会使用节点和链接进行更新。因此,我使用新节点和链接更新了force布局,如下所示

force.nodes(新节点) .links(newLinks) .start()

我是用鼠标拖动的


但它仍然不起作用,任何帮助都值得赞赏。谢谢您设置位置时,您需要设置布局内部使用的
px
py
属性。更改(和简化)示例。

您需要在此处向我们展示一些代码。请找到下面的fiddle链接。jsfiddle.net/lkanikka/Lymtedrq为了简单起见,在拖放一个节点之后,我将它放在[10,10]中。在实际例子中,它是不同的。放置节点后,在“拖动结束”之后,我拖动另一个节点。我先前拖动的节点移回[x.y]位置,该位置是它被拖放的位置,而不是[10,10](计算出的[x,y])。。。看起来它放置位置的[x,y]存储在force布局中。如何使用新的[x,y]更新forcelayout?我已经在mouseup中更新了图形数组,并执行了force.start()。它不起作用…您还需要设置
px
py
属性谢谢。。。它起作用了!