2009-01-21 91 views
5

我正在尋找C++的簡單圖形佈局庫。我想將庫嵌入到基於wxWidgets的可視化器中。總之,我正在尋找類似graphviz的東西,除了動態 - 即發生事件時,只需要加載圖形中的更改,而不是完整的顯示。有dynagraph,但它似乎是一個死的項目。我以前曾被建議使用VTK--但它是一個重量級的。C++的簡單動態圖形顯示

我正在尋找開源,非copyleft種類的可用於商業用途的庫(GPL出,LGPL應該沒問題)。我願意接受谷歌不會給予的建議。

回答

4

Graphviz生成的佈局基於全局結構 - 任何一個加法都可以顯着改變輸出(除非使用固定座標,在這種情況下,您可能不會問這個問題)。基本上,如果你希望元素的自動佈局,則需要接受這些解決方案之一:

  • 當一個新的元件放置,物理模擬是實時運行,造成節點,直到他們融入到瘋狂反彈,他們的新地點。這將是緩慢的,但它會顯示「令人愉快」的變化。
  • 當一個新的元素被放置時,整個圖形被重新繪製(物理/任何被隱藏,但整個事情被修改)。由於不必重新繪製,這會更快,但節點的相對位置可能完全不同。
  • 當放置新元素時,現有元素不會被修改。經過足夠的動態更新後,您的圖形看起來就像垃圾,因爲自動佈局是一個全局優化問題。

對不起,我不能幫你解決問題,但也許這有助於解釋爲什麼你要找的東西可能根本就不存在(或者沒有任何好處)。

0

爲了克服使用graphviz(湯姆descibed)時的一些問題。 我們將可視化世界座標設置爲與graphviz世界座標一致。

然後。假設每個可視元素都有一個唯一的標識符,使用這些元素來構建一個圖。以文本形式輸出圖形。根據輸出解析重新排列所有內容。 ?

-

邁克爾