2

我在使用 JUNG 的 DAGLayout 算法时遇到了一些问题,随后又将布局坐标读出到我自己的数据结构中。

我有一个包含s 和sNetwork列表的课程。要将其转换为 JUNG 数据结构,我创建了一个对象并添加了边。并返回 Node 对象。NodeEdgeDirectedSparseMultigraphe.getSrc()e.getDest()

DirectedSparseMultigraph<Node, Edge> graph;
for (Edge e : net.getEdges()) {
    graph.addEdge(e, e.getSrc(), e.getDest());
}

然后,我应用布局算法。

Layout<Node, Point2D> layout;
layout = new DAGLayout(graph);

之后,我使用布局来获取顶点坐标。

for (Node node : net.getNodes()) {
    Point2D coord = layout.transform(node);
    node.setPos((float)coord.getX(), (float)coord.getY());
}

但是Node对象总是将 (0,0) 作为 (x,y)。

为什么这不起作用,我该如何解决?

4

1 回答 1

2

我对 JUNG 不太熟悉,但我认为您必须先指定布局的大小,例如:

layout.setSize(new Dimension(800,600));
于 2011-11-10T11:25:49.160 回答