2015-10-14 40 views
1

我已經使用鄰接列表實現了一個圖。 我有我需要的每個頂點的所有信息:深度,兄弟姐妹的數量,指向其父頂點的指針(它只能有一個父對象),關於它的子對象的信息等等。繪製圖的算法

我想繪製圖的層次結構,最好從左到右。 我想要一個算法來計算每個頂點的座標(x,y)。

關於佈局總空間,我有關於總佈局的高度和重量的信息,以及有關頂點的重量和高度的信息,但此時可以將它們視爲點。

很容易想出一個返回X座標的「公式」:我們在X軸上進行的圖/樹中的每一層都會更深入。

但我很困惑如何計算每個頂點的Y座標。而且我認爲有人在我面前有這種感覺。查看它並發現這是一個衆所周知的問題後找不到有用的東西。

回答

0

獲取適用於大多數圖形佈局一般情況的X和Y座標並非易事。

你可能想看看一些開源工具來了解他們是如何做到的。

的Graphviz有佈局一些很好的算法 http://www.graphviz.org/

ANTLR的是另一個 http://www.antlr.org/