2
JUNGのDAGLayoutアルゴリズムを使用していくつかの問題が発生し、その後レイアウトデータを自分のデータ構造に再度読み込みました。JUNGレイアウト変換の使い方は?
Node
とEdge
のリストを持つNetwork
クラスがあります。これを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では、レンダリングコードでサイズを指定する必要はありません。配置はキャンバスのサイズを知っていなければ初期化できません。 –