2013-06-24 75 views
8

我使用d3 force佈局來構建圖形,然後將節點的位置存儲在數據庫中。如何使用d3力佈局顯示圖形,初始位置已設置且完全不動?

下次我想要顯示圖形時,我從數據庫中讀取位置到節點中,然後啓動力佈局。

這會導致佈局稍微移動。

有沒有我的方式來顯示存儲的節點位置的圖形沒有調用force.start()呢?

我想要的是一個「只讀」模式,以顯示其他人早些時候創建的穩定圖形。

/Hans

回答

10

我建議您閱讀documentation of the force layout。這真的很好。

如上所述,您必須爲每個節點設置pxpy屬性。然後,您可以在每個節點中將屬性fixed設置爲true

這意味着計算force.start()不會有任何影響。


你可以嘗試的另一件事是Alpha值設置爲0,然後開始仿真:

force.alpha(0) 
    .start() 

我不知道這種方法是否有效。如果沒有,發佈一個jsFiddle。

+1

哦,我已經反覆閱讀了文檔,但我只是不夠聰明,不知道我應該使用fixed屬性:-)。 它很好用! 謝謝! – hansbrattberg

+0

這是正常的,不用擔心。我很高興它有幫助。如果解決了您的問題,您可以接受答案。 –