2016-11-14 86 views
1

我正在研究D3v4中的強制佈局,它需要隨時間更新其節點。我跟着Adding new nodes to Force-directed layout(D3v2)和mbostock的block(D3v3),但我不太確定如何在D3v4中實現同樣的效果。下面是我到目前爲止有:在D3v4中更新強制佈局

http://bl.ocks.org/danielcompton/2189f9571e306f3084e5c2a913002eaf

說我看到的問題是,當我相同的數據加給力佈局的第二次,它復位節點位置,也似乎用較少的阿爾法來重置它們,所以它們在點擊之前不會完全展開。當我更新節點和鏈接時,是否還需要設置alpha?

我見過D3 v4: Update force layout這是一個不同的(但相關的)問題。

有沒有人有關於如何在D3 v4中實現這一點的任何提示?

回答

0

看來模擬開始與你處理它的方式低alpha值。如果我只是.alpha(1)重置handleGraph內的Alpha值它在我身邊的伎倆:

simulation 
    .nodes(graph.nodes) 
    .on("tick", ticked) 
    .alpha(1); 
0

您添加的數據後,就可以使用simulation.alpha(1).restart()重新啓動仿真佈局。