2

JUNGのDAGLayoutアルゴリズムを使用し、その後、レイアウト座標を自分のデータ構造に再度読み取る際に問題が発生しました。

sとsのリストを含むNetworkクラスがあります。これをJUNGデータ構造に変換するために、オブジェクトを作成してエッジを追加します。ノードオブジェクトを返します。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 に答える