JUNG力导向图

时间:2015-06-24 11:23:10

标签: java jung jung2

我正在尝试在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

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