2013-05-28 41 views
8

我正在尋找一個庫,其中可以提供節點和邊,並生成所有節點的座標列表。但是,應該有可能爲提供某些的固定位置,但並非全部是節點,佈局算法應該尊重這些節點。增量圖形的節點圖形佈局庫

到目前爲止,我已經嘗試過graphviz(fdp,neato),它似乎不能保持某些節點的位置並圍繞它們構建佈局。

該庫必須可用於python,所以它應該是python或c/C++,所以我們可以編寫我們自己的綁定。

下面的圖片說明了我正在尋找什麼(這是uDraw項目,它似乎不存在作爲庫)。

uDraw incremental layout

+1

您是否找到解決此問題的方法? –

+0

我正在處理與3d空間中的部分圖形相似的東西,但它很難。您必須以某種方式存儲相對於較大節點的座標,除非您希望通過每次更新將整個圖形數據發送到客戶端。我還沒有解決方案。你有沒有找到有用的東西? – inf3rno

回答

1

您可以反向爲此在graphviz,如果這是對你有用。要做到這一點,您應先繪製右側圖形,然後繪製左側圖形,將節點15,16和17設置爲style=invis。這會給你很多相同的佈局,如圖所示。

我可以通過首先繪製左側圖表感知一個問題,即軟件(dot或其他)自然會嘗試繪製一個沒有節點15,16和17的「看起來很漂亮」的圖形,如果以後需要節點15,16和17,則不要留出足夠的空間。例如,如果我們試圖在節點11和節點12之間插入一個節點12a,那麼在上面顯示的圖中就沒有空間了。另一方面,如果節點12a最初被繪製但不可見,那麼軟件將爲其分配空間,它可能在稍後被包含。