2
我有一些使用JUNG的DAGLayout算法的问题,随后再次将布局坐标读入我自己的数据结构中。如何正确使用JUNG布局转换?
我有一个Network
类与列表Node
s和Edge
s。为了将其转换为JUNG数据结构,我创建了一个DirectedSparseMultigraph
对象并添加边缘。 e.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)。
为什么这种方式不行,我该如何解决?
谢谢,解决它。没有想到它,因为渲染不需要指定的大小,但变压器似乎这样做。 –
IIRC,渲染不需要您指定大小,因为渲染代码将提供一个,如果您不这样做。在布局知道必须使用的画布大小之前,不能初始化位置。 –