1

我正在尝试在 JUNG 中构建一个力有向图,类似于您可以在 D3.js 中创建(非常容易)的那些。

其中大部分非常简单,但文档有点旧,示例不包括强制引导的示例(尽管那里有一个声称是演示的 Java 小程序,但它什么也没显示)

无论如何,使用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 中。

任何人都知道如何实现这一目标?

NB Jung 版本是 2.0.1

4

1 回答 1

0

看起来您正在查看 jung-1.x 文档。在 jung-2.xDirectedSparseGraph<V, E>中是一个泛型类,具有 verticesV和 edges的类型参数E

这也是定义具有任意属性的顶点和边的方法。例如,如果您想拥有边权重,请创建一个合适的边类权重:

class Edge {
    public double weight;
}

equals()请注意,您通常还希望hashCode()至少实现顶点。

如果您想使用权重进行布局(例如,在 中SpringLayout其中一个构造函数 采用lengthFunction.

于 2015-06-24T11:48:57.007 回答