Desplazamiento de ramificaciones
La modalidad de diseño de globo tiene un espaciado
mínimo sólo entre nodos, y no distingue entre los desplazamientos
mínimos de hermanos, ramificaciones y relaciones padre-hijo. El
espaciado mínimo entre nodos se controla mediante el desplazamiento
de ramificaciones, como en la modalidad libre y la modalidad de
nivel. El desplazamiento de hermanos y padre-hijo no afecta a la
modalidad de diseño de globo.
Para especificar el desplazamiento mínimo entre nodos:
Utilice el método setBranchOffset:
treeLayout.setBranchOffset(20);
Espaciado de ángulo
Los ángulos entre los sectores de un globo y el radio
del globo tienen más efecto en el espaciado del diseño que el
desplazamiento mínimo. Una mala elección de los ángulos del sector
requiere radios mayores para evitar solapamientos y, por
consiguiente, un área más grande para el diseño. Por lo tanto, el
diseño ofrece distintas modalidades de espaciado de ángulo.
En la figura siguiente, el diseño de la izquierda
utiliza el espaciado de ángulo regular y el diseño de la derecha
utiliza el espaciado de ángulo proporcional. A la derecha, el ángulo
del sector del subárbol azul es mucho mayor que los ángulos del
sector de cada subárbol verde, puesto que el subárbol azul es mayor
que los subárboles verdes.

Espaciado de ángulo: izquierda: regular, derecha:
proporcional (lento)
Para especificar el espaciado de ángulo:
Utilice el método setBalloonAngleSpacing:
treeLayout.setBalloonAngleSpacing(ibm_ilog.graphlayout.tree.TreeLayout.REGULAR);
Los valores válidos para la modalidad son:
- ibm_ilog.graphlayout.tree.TreeLayout.REGULAR
- El intervalo de ángulos disponibles en un nodo se divide de manera uniforme para que cada globo de subárbol en el nodo pueda ocupar el mismo ángulo. Esto parece uniforme pero suele desperdiciar espacio si los subárboles no son del mismo tamaño. Consulte la figura del espacio de ángulo, imagen de la izquierda.
- ibm_ilog.graphlayout.tree.TreeLayout.FAST_PROPORTIONAL
- El intervalo de ángulos disponibles en un nodo se divide proporcionalmente de forma que los globos de subárboles grandes en el nodo puedan ocupar ángulos mayores. En consecuencia, un subárbol grande requiere un radio menor, de ahí que esta modalidad utilice menos espacio. El algoritmo utiliza un método heurístico rápido para calcular los intervalos de ángulos. Este método heurístico no es preciso y a veces genera diseños asimétricos. La calidad del resultado depende en gran medida de la elección del ángulo inicial. El método heurístico se ejecuta en tiempo lineal.
- ibm_ilog.graphlayout.tree.TreeLayout.PROPORTIONAL
- Igual que la modalidad proporcional rápida: el intervalo de ángulos disponibles en un nodo se divide proporcionalmente de forma que los globos de subárboles grandes en el nodo puedan ocupar ángulos mayores. Sin embargo, el algoritmo utiliza un método heurístico lento que es más preciso, utiliza aún mejor el espacio y genera diseños simétricos. La calidad del resultado no depende de la elección del ángulo inicial. El método heurístico se ejecuta en tiempo cuadrático. Esta es la modalidad predeterminada. Consulte la figura del espacio de ángulo, imagen de la derecha.
Modalidad de radio
Cuando se han elegido los ángulos del sector para los
globos de subárboles, debe calcularse el radio (longitud del enlace
desde el padre hasta el hijo) de modo que no se solape ningún
subárbol. La elección de radio es un compromiso entre simetría y
área. Elegir un radio uniforme para todos los nodos hijo del mismo
padre a menudo requiere mucho espacio. Consulte la figura que muestra
ejemplos de diseños de radio uniforme y variable, imagen superior
izquierda. Si el radio es variable, las simetrías se pierden. Como
solución de compromiso, puede optar por tener un radio variable sólo
para globos de subárboles grandes y mantener un radio uniforme para
todos los nodos finales de un padre. Consulte la figura que muestra
ejemplos de diseños de radio uniforme y variable, imagen superior
derecha, donde el enlace hacia el subárbol azul es más largo que los
enlaces hacia los subárboles verdes. Si las simetrías no son
importantes, se puede seleccionar una fase de optimización adicional
que aproxima los globos. La fase de optimización se puede aplicar a
los subárboles que no son nodos finales. Consulte la figura que
muestra ejemplos de diseños de radio uniforme y variable, imagen
inferior izquierda. Esta fase también se puede utilizar para
aproximar los nodos finales Consulte las figuras que muestran
ejemplos de diseños de radio uniforme y variable, imagen inferior
derecha. En el último caso, los nodos finales suelen estar
diseminados y no forman un círculo.

Modalidad de radio: izquierda: uniforme, derecha:
nodos finales uniformes (los subárboles más grandes tienen radio
variable)

Modalidad de radio: izquierda: nodos finales
uniformes optimizados, derecha: variable optimizada
Para especificar la modalidad de radio:
Utilice el método setBalloonRadiusMode:
treeLayout.setBalloonRadiusMode(ibm_ilog.graphlayout.tree.TreeLayout.UNIFORM_RADIUS);
Los valores válidos para
mode
son: - ibm_ilog.graphlayout.tree.TreeLayout.UNIFORM_RADIUS
- Los radios de todos los globos de subárboles que son nodos hijo del mismo nodo son uniformes. Esta modalidad requiere la mayor área, pero también proporciona el mayor número de simetrías en el diseño. Sin embargo, si el árbol no está equilibrado, normalmente desperdicia mucho espacio. Consulte la figura de radio variable, imagen superior izquierda.
- ibm_ilog.graphlayout.tree.TreeLayout.UNIFORM_LEAVES_RADIUS
- Los radios de todos los nodos finales que son nodos hijo del mismo nodo son uniformes; sin embargo, el radio de un globo que contienen más de un nodo puede variar. Este valor es mejor para árboles desequilibrados puesto que utiliza mucho mejor el espacio disponible. Utilice este valor si las simetrías del diseño son importantes. Consulte la figura de radio variable, imagen superior derecha.
- ibm_ilog.graphlayout.tree.TreeLayout.VARIABLE_RADIUS
- El radio de todos los globos hijo distintos en el mismo nodo padre puede variar. Varía incluso para los nodos hijo del mismo nodo, si estos nodos hijo tienen diferentes tamaños de nodo.
- TreeLayout.OPTIMIZED_UNIFORM_LEAVES_RADIUS
- La ubicación inicial se realiza como en la modalidad de radio de nodos finales uniformes. Además, una optimización heurística aproxima los subárboles para reducir los radios. Esto tiene la ventaja de que los requisitos de espacio son menores, pero se pierden simetrías en el diagrama. Los nodos finales que tienen el mismo nodo padre todavía conservan el mismo radio. Consulte la figura de radio variable, imagen inferior izquierda.
- ibm_ilog.graphlayout.tree.TreeLayout.OPTIMIZED_VARIABLE_RADIUS
- La ubicación inicial se realiza como en la modalidad de radio variable. Además, una optimización heurística aproxima los subárboles para reducir los radios. Esto tiene la ventaja de que los requisitos de espacio son menores, pero se pierden simetrías en el diagrama. Afecta incluso a los nodos finales del mismo padre, por lo que pueden acabar estando bastante diseminados alrededor del padre. Consulte la figura de radio variable, imagen inferior derecha.