Los autoenlaces son enlaces que empiezan y acaban en el
mismo nodo. También pueden darse como multienlaces, cuando se
denominan paquete de multiautoenlaces. Cuando los enlaces se
direccionan directamente, los autoenlaces no son visibles, porque
empiezan y acaban en el mismo punto en el centro del nodo. Para
evitar este efecto, los diseños que se enumeran en
Algoritmos de diseño que son subclases del Diseño de estilo de enlace básico tienen una
modalidad de autoenlace que se aplica solamente cuando el estilo de
enlace se establece en
STRAIGHT_LINE_STYLE.
A pesar del nombre del estilo de enlace, la combinación de modalidad
y estilo hace que se añadan curvas a los autoenlaces para hacerlos
visibles. Si el estilo de enlace es
NO_RESHAPE_STYLE, la
modalidad de autoenlace no surte efecto.
Ejemplo de cómo especificar el modo en que se
direccionan los autoenlaces
Para especificar la modalidad de autoenlace, utilice el
método:
layout.setSelfLinkMode(mode);
Los valores válidos para la modalidad se ofrecen con el
ejemplo del diseño Force-directed:
- ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.NO_BENDS: No se cambia con curvas la forma de los autoenlaces y puede que no sean visibles.
- ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.NARROW_CONNECTED_RECTANGULAR: Esta es la modalidad predeterminada.
Todas estas modalidades, excepto la modalidad sin
curvas, crea tres curvas que se colocan ortogonalmente, de modo que
los segmentos aproximadamente se asemejan a las tres cuartas partes
de un rectángulo o de un cuadrado, correspondiendo la cuarta parte al
nodo en que está conectado el autoenlace. Dependiendo de la dimensión
del nodo, las modalidades rectangulares crean formas con cuatro
esquinas que no son cuadrados; las modalidades cuadradas crean
cuadrados. Las modalidades cuadradas son especialmente útiles para
los autoenlaces spline, porque el spline puede asemejarse
aproximadamente a las tres cuartas partes de un círculo.
Modalidad | Resultado gráfico |
---|---|
Modalidad CONNECTED_RECTANGULAR | ![]() |
Modalidad CONNECTED_SQUARE | ![]() |
Modalidad CONNECTED_SQUARE con enlace spline | ![]() |
Las modalidades conectadas colocan los puntos de
conexión en el borde del nodo. Las modalidades libres colocan las
curvas en la misma posición que las modalidades conectadas
correspondientes, pero el punto de conexión de enlace no es
obligatorio; es decir, el nodo y el enlace pueden elegir libremente
dónde colocar el punto de conexión. Los segmentos de enlaces de las
modalidades libres puede que no sean ortogonales, porque el punto de
conexión no es obligatorio.
Las modalidades de restringir y las otras modalidades se
comportan del mismo modo para un solo autoenlace. Si tiene varios
autoenlaces en el mismo nodo, los autoenlaces se desplazan para
evitar solapamientos. En este caso, las modalidades de restringir
difieren de los otros modos; el paquete de multiautoenlaces puede
parecer más estrecho porque el desplazamiento de los multiautoenlaces
está limitado por el tamaño del nodo final.
Ejemplos de uso de la modalidad y el desplazamiento | Resultado gráfico |
---|---|
Modalidad CONNECTED_SQUARE | ![]() |
Modalidad NARROW_CONNECTED_SQUARE | ![]() |
Puede haber autoenlaces en todas las esquinas del nodo.
El algoritmo determina automáticamente qué esquina es la más
adecuada, dependiendo de la dirección de los demás enlaces. Puede
limitar las esquinas que deben utilizarse.
Utilice el método:
layout.setSelfLinkAllowedCorners(corners);
Las esquinas permitidas son una combinación Or bit a bit
seleccionada entre las siguientes constantes; por ejemplo, en el
diseño Force-directed:
De forma predeterminada, los autoenlaces están
orientados en el sentido de las agujas del reloj. Puede especificar
otras orientaciones.
Utilice el método:
setSelfLinkOrientation(orientation);
Utilizando el diseño
Force-directed como ejemplo, los valores
válidos para orientation
son:
- Los autoenlaces empiezan con un segmento horizontal y acaban con un segmento vertical.
- Los autoenlaces empiezan con un segmento vertical y acaban con un segmento horizontal.