我正在尝试在JUNG中构建一个力导向图,类似于你可以在D3.js中创建的(很容易)。
大部分内容非常简单,但文档有点旧,示例中不包含强制定向的内容(虽然有一个声称是演示的java applet,但它没有显示任何内容)
无论如何,使用DirectedSparseGraph
我已经实现了大部分功能:
directedGraph = new DirectedSparseGraph();
directedGraph.addVertex("someVertex");
directedGraph.addVertex("someOtherVertex");
// etc
directedGraph.addEdge("someVertex", "someOtherVertex");
// etc
这几乎完全符合我的要求,但我无法弄清楚如何为边缘指定长度以显示不同的力量。我查看了文档和谷歌,但无法找到任何内容。
我期待类似的东西
directedGraph.addEdge([edge 1], [edge 2], [edge length]);
但它似乎不存在于api中。
任何人都知道如何实现这个目标?
N.b。荣格版是2.0.1
答案 0 :(得分:0)
看起来你正在看jung-1.x文档。在jung-2.x中,DirectedSparseGraph<V, E>
是一个泛型类,其顶点为V
和边E
。
这也是定义具有任意属性的顶点和边的方法。例如。如果要使用边权重,请使用权重创建合适的边缘类:
class Edge {
public double weight;
}
请注意,您通常还希望至少为顶点实现equals()
和hashCode()
。
如果您想使用权重进行布局(例如在SpringLayout
中,one of the constructors需要lengthFunction
。