Varios enlaces entre el mismo par de nodos

A veces un gráfico tiene varios enlaces entre el mismo par de nodos. Si estos enlaces se direccionan directamente y utilizan el mismo punto de conexión en los nodos, se superponen y no se pueden distinguir. Para evitar solapamientos, los diseños especificados tienen una modalidad de multienlace que se aplica únicamente cuando el estilo de enlace se establece en STRAIGHT_LINE_STYLE. Esta modalidad no surte efecto si el estilo de enlace es NO_RESHAPE_STYLE.
Ejemplo de cómo especificar el modo de direccionar varios enlaces
Para especificar la modalidad de multienlace, utilice el método:
layout.setMultiLinkMode(mode);
Los valores válidos para la modalidad se ofrecen con el ejemplo del diseño Force-directed:
Si la modalidad de multienlace no es NO_BUNDLE, se puede especificar el desplazamiento entre los enlaces desplazados o entre las curvas de los enlaces, respectivamente:
Utilice los métodos:
layout.setMultiLinkOffset(offset);
layout.setMultiLinkMaxSpread(maxSpread);
El desplazamiento de multienlace es el desplazamiento entre dos enlaces colindantes (o sus curvas). El valor de maxSpread limita este desplazamiento para evitar que se utilice demasiado espacio cuando haya demasiados multienlaces. Si el desplazamiento de multienlace es 10 y el valor de maxSpread es 60, el desplazamiento efectivo es 10 si tiene menos de seis multienlaces. Si tiene más multienlaces, el desplazamiento efectivo se reduce. Por ejemplo, si tiene 15 multienlaces, el desplazamiento efectivo es de 4 en lugar de 10 para garantizar que los enlaces están separados como máximo 60 unidades entre sí. Si la modalidad de multienlace es NARROW_STRAIGHT_LINE_BUNDLE, el desplazamiento efectivo también está limitado por el tamaño del recuadro delimitador de ambos nodos finales de un paquete de enlaces.
Ejemplos de uso de la modalidad y el desplazamiento Resultado gráfico
NO_BUNDLE
Resultado
de desplazamiento en la modalidad NO_BUNDLE entre un par de
enlaces
STRAIGHT_LINE_BUNDLE cuando se establece un valor para maxSpread demasiado alto.
Resultado
del desplazamiento en STRAIGHT_LINE_BUNDLE con un valor de máxima
propagación demasiado alto
NARROW_STRAIGHT_LINE_BUNDLE: se puede obtener el mismo resultado con STRAIGHT_LINE_BUNDLE reduciendo el valor de maxSpread.
Resultado
del desplazamiento en NARROW_STRAIGHT_LINE_BUNDLE o en
STRAIGHT_LINE_BUNDLE con un valor reducido de máxima
propagación
CONNECTED_ONE_BEND_BUNDLE
Resultado
del desplazamiento en CONNECTED_ONE_BEND_BUNDLE
FREE_ONE_BEND_BUNDLE cuando los enlaces están conectados inicialmente a centros de nodos.
Se puede obtener el mismo resultado con CONNECTED_ONE_BEND_BUNDLE en combinación con el valor connectLinksToNodeCenters establecido en true. Por ejemplo, consulte ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.setConnectLinksToNodeCenters
Resultado
del desplazamiento en FREE_ONE_BEND_BUNDLE, enlaces inicialmente
conectados a centros de nodos, o CONNECTED_ONE_BEND_BUNDLE con
setConnectLinksToNodeCenters establecido en true