GraphStream沒有辦法在節點上聲明錨點,句柄或端口。
但是,既然您希望您的邊緣在節點的左側和右側收緊,那麼您可能希望給「freeplan」CSS屬性一個嘗試。參閱圖表上下面的例子中,特別是在「樣式」屬性:
Graph graph = new SingleGraph("FreePlane");
System.setProperty("org.graphstream.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer");
graph.display();
graph.setAttribute("stylesheet", "node { "
+ " shape: rounded-box; "
+ " padding: 5px; "
+ " fill-color: white; "
+ " stroke-mode: plain; "
+ " size-mode: fit; "
+ "} "
+ "edge { "
+ " shape: freeplane; "
+ "}");
graph.addAttribute("ui.quality");
graph.addAttribute("ui.antialias");
Node a = graph.addNode("A");
Node b = graph.addNode("B");
graph.addEdge("AB", "A", "B");
Node c = graph.addNode("C");
graph.addEdge("BC", "B", "C");
a.addAttribute("ui.label", "node A");
b.addAttribute("ui.label", "node B");
c.addAttribute("ui.label", "node C");
這將使你類似的東西:
有沒有辦法「分割」一個節點,有效地爲每個端口單獨的節點,然後將它們緊密粘合在一起,尊重左右位置? – 2015-03-31 13:32:29
@WouterLenvens你可以*確實創建多個節點,但是將它們組合在一起並不容易。你必須自己處理他們的位置。您可能永遠無法獲得與您在帖子中添加的數字相近的任何內容。實際上,很難期望像GraphStream這樣的通用圖庫的特徵:( – Yoann 2015-03-31 15:21:38
我明白這一點。看起來GraphStream中的重點更多地放在非常大的和/或動態的圖上,而不是微小的複雜圖結構。當然,你有沒有想過哪個(可嵌入的)java庫可能適合處理節點上帶有端口的圖的路由? – 2015-03-31 18:59:06