Come impedire vertice da sovrapposizione?
-
19-09-2019 - |
Domanda
Io uso Jung per disegnare grafici. Qui di seguito è un semplice grafico con il layout albero che sembra bene. Tutti i renderer e trasformatori sono di default.
alt text http://czuk.eu/stackoverflow/ballon_layout_default_size.png
Ora, ho cambiato la dimensione predefinita dei nodi per 100px impostando un VertexShapeTransformer
personalizzato. Il problema è che i nodi hanno cominciato a sovrapporsi. Qui potete vedere come appare:
alt text http://czuk.eu/stackoverflow/ballon_layout_size_100px.png
E 'possibile eliminare la sovrapposizione di vertice? E 'una questione di layout o qualche tipo di forma trasformazione?
Grazie in anticipo per eventuali suggerimenti: -)
Soluzione
Dopo non molto tempo indagini ho scoperto che ci sono due attributi statici incaricati di definire le distanze minime tra vertici. Questi sono TreeLayout.DEFAULT_DISTX
e TreeLayout.DEFAULT_DISTY
. Sfortunatamente, questi attributi definiscono una distanza minima fissa tra vertici ma non considerano la dimensione reale di ogni vertice che potrebbe differire. L'impostazione è valida per la TreeLayout
e la BalloonLayout
che estende il TreeLayout
.
I cerca anche altri layout, ma non riuscivo a trovare una soluzione analogica. Questo problema è per un'altra questione; -)
Altri suggerimenti
Quando si crea un TreeLayout
è possibile specificare il TreeLayout.DEFAULT_DISTX
e TreeLayout.DEFAULT_DISTY
nel costruttore:
TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);
Forse avete bisogno di mettere una maggiore distanza tra i nodi? Hai iniziato con una certa distanza con alcuni nodi di dimensione. Quando avete aumentato le dimensioni del nodo ridotto lo spazio tra di loro, per compensare distanza extra deve essere messo tra i nodi per impedire loro di sovrapposizione.