オーバーラップから頂点を防ぐためにどのように?
-
19-09-2019 - |
質問
私は、グラフを描画するためにユングを使用しています。以下は正常に見える木のレイアウトを持つ単純なグラフです。すべてのレンダラーや変圧器がデフォルトです。
altテキストhttp://czuk.eu/stackoverflow/ballon_layout_default_size.pngする
さて、私は、カスタムVertexShapeTransformer
を設定することにより、100ピクセルにノードのデフォルトサイズを変更しました。問題は、ノードが重なるように始めたということです。ここでは、それがどのように見えるかを確認することができます:
altテキストhttp://czuk.eu/stackoverflow/ballon_layout_size_100px.pngする
頂点の重複を取り除くために、それは可能ですか?それは、レイアウトの問題や形状変換のいくつかの種類ですか?
任意の提案のために事前にありがとう: - )
解決
それほど長くない調査の後、私は頂点間の最小距離を設定するための責任が2つの静的属性があることが分かりました。これらはTreeLayout.DEFAULT_DISTX
とTreeLayout.DEFAULT_DISTY
です。残念ながら、これらの属性は、頂点間の一定の最小距離を定義するが、異なる可能性があり、各頂点の本当の大きさを考慮していません。設定はTreeLayout
とBalloonLayout
を拡張TreeLayout
有効です。
私はまた、他のレイアウトをしようとしますが、私は類推的解決策を見つけることができませんでした。この問題は、別の質問のためである; - )
他のヒント
あなたはTreeLayout
を作成するときは、コンストラクタでTreeLayout.DEFAULT_DISTX
とTreeLayout.DEFAULT_DISTY
を指定することができます:
TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);
おそらくあなたは、ノード間のより大きな距離を置く必要がありますか?あなたは、特定のサイズのノードと一定の距離を始めています。あなたはノードのサイズを増加させたとき、あなたは余分な距離を補正するために、それらの間のスペースを削減オーバーラップからそれらを保つために、ノード間を置くことが必要である。