我在使用JUNG的DAGLayout算法时遇到了一些问题,然后再次将布局坐标读出到我自己的数据结构中。
我有Network
课程,其中包含Node
和Edge
的列表。要将其转换为JUNG数据结构,我创建一个DirectedSparseMultigraph
对象并添加边。 e.getSrc()
和e.getDest()
返回Node对象。
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)。
为什么这不起作用,我该如何解决?
答案 0 :(得分:2)
我对JUNG不太熟悉,但我认为你必须先指定布局的大小,例如:
layout.setSize(new Dimension(800,600));