Comment éviter de se chevaucher sommet?
-
19-09-2019 - |
Question
J'utilise Jung pour dessiner des graphiques. Ci-dessous un graphique simple avec mise en page d'arbre qui ressemble bien. Tous les équarrisseurs et les transformateurs sont par défaut.
texte alt http://czuk.eu/stackoverflow/ballon_layout_default_size.png
Maintenant, j'ai changé la taille par défaut des noeuds à 100px en définissant un VertexShapeTransformer
personnalisé. Le problème est que les noeuds ont commencé à se chevaucher. Ici vous pouvez voir à quoi il ressemble:
texte alt http://czuk.eu/stackoverflow/ballon_layout_size_100px.png
Est-il possible de se débarrasser du chevauchement de sommet? Est-ce une question de mise en page ou une sorte de transformation de forme?
Merci d'avance pour toute suggestion: -)
La solution
Après pas si longue enquête, j'ai découvert qu'il ya deux attributs statiques chargés d'établir les distances minimales entre vertex. Ce sont TreeLayout.DEFAULT_DISTX
et TreeLayout.DEFAULT_DISTY
. Malheureusement, ces attributs définissent une distance minimale fixe entre vertex mais ne considèrent pas la taille réelle de chaque sommet qui peut différer. Le réglage est valable pour la TreeLayout
et la BalloonLayout
qui étend la TreeLayout
.
Je tente également d'autres mise en page mais je ne pouvais pas trouver une solution analogique. Cette question est pour une autre question; -)
Autres conseils
Lorsque vous créez un TreeLayout
vous pouvez spécifier le TreeLayout.DEFAULT_DISTX
et TreeLayout.DEFAULT_DISTY
dans le constructeur:
TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);
Peut-être que vous avez besoin de mettre une plus grande distance entre les nœuds? Vous avez commencé avec une certaine distance avec certains nœuds de taille. Lorsque vous augmentez la taille du nœud réduit l'espace entre eux, pour compenser la distance supplémentaire doit être mis entre les nœuds pour les empêcher de se chevaucher.