2009-12-15 72 views
1

我使用Jung繪製圖形。下面是一個簡單的樹形佈局圖,看起來不錯。所有的渲染器和變壓器都是默認的。如何防止頂點重疊?

alt text http://czuk.eu/stackoverflow/ballon_layout_default_size.png

現在,我已經通過設置自定義VertexShapeTransformer改變節點的默認大小爲100px。問題是節點開始重疊。在這裏你可以看到它的外觀:

alt text http://czuk.eu/stackoverflow/ballon_layout_size_100px.png

是否有可能擺脫頂點重疊?這是佈局還是某種形狀轉換的問題?

預先感謝您的:-)

回答

1

經過不長的調查,我發現有兩個靜態屬性負責設置頂點之間的最小距離。這些是TreeLayout.DEFAULT_DISTXTreeLayout.DEFAULT_DISTY。不幸的是,這些屬性定義了頂點之間的固定最小距離,但沒有考慮可能不同的每個頂點的實際大小。該設置對TreeLayoutBalloonLayout有效,延伸TreeLayout

我也嘗試其他佈局,但我找不到類似的解決方案。這個問題是另一個問題;-)

0

也許你需要把節點之間的距離更大有什麼建議?你從一定大小的節點開始一段距離。當你增加了節點的大小時,你減少了它們之間的空間,以補償節點之間需要加入的額外距離以防止它們重疊。

+0

我不知道任何關於圖形佈局算法,但不應該他們認爲節點大小? – czuk

1

當你創建一個TreeLayout您可以指定在構造函數中TreeLayout.DEFAULT_DISTXTreeLayout.DEFAULT_DISTY

TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);