¿Cómo prevenir el vértice de la superposición?
-
19-09-2019 - |
Pregunta
Yo uso Jung para dibujar gráficos. A continuación se muestra un gráfico sencillo con diseño de árbol que se ve bien. Todos los procesadores y transformadores son por defecto.
texto alternativo http://czuk.eu/stackoverflow/ballon_layout_default_size.png
Ahora, me han cambiado el tamaño predeterminado de los nodos a 100px mediante el establecimiento de un VertexShapeTransformer
personalizado. El problema es que los nodos comenzaron a superponerse. Aquí se puede ver cómo se ve:
texto alternativo http://czuk.eu/stackoverflow/ballon_layout_size_100px.png
¿Es posible deshacerse de la superposición de vértice? ¿Es una cuestión de diseño o algún tipo de transformación de la forma?
Gracias de antemano por cualquier sugerencia: -)
Solución
Después de no tan larga investigación descubrí que hay dos atributos estáticos responsables de establecer las distancias mínimas entre los vértices. Estos son TreeLayout.DEFAULT_DISTX
y TreeLayout.DEFAULT_DISTY
. Por desgracia, estos atributos definen una distancia mínima fijada entre vértices, pero no tienen en cuenta el tamaño real de cada vértice que puede diferir. El ajuste es válido para el TreeLayout
y la BalloonLayout
que se extiende la TreeLayout
.
Yo también trata de otro diseño, pero no pude encontrar una solución analógica. Este problema es de otra pregunta; -)
Otros consejos
Cuando se crea un TreeLayout
puede especificar el TreeLayout.DEFAULT_DISTX
y TreeLayout.DEFAULT_DISTY
en el constructor:
TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);
Tal vez usted necesita para poner una mayor distancia entre los nodos? Que se inició con una cierta distancia con un cierto tamaño nodos. Cuando se aumentó el tamaño del nodo usted redujo el espacio entre ellos, para compensar distancia extra necesita ser puesto entre los nodos para que no se superpongan.