En esta sección se muestra el uso del diseño de árbol
(clase
TreeLayout
del paquete ibm_ilog.graphlayout.tree).
El algoritmo principal de las modalidades de diseño
libre, de nivel y radial tiene sólo dos pasos y es rápido. Las
variaciones de la modalidad de diseño de volcado ejecutan el segundo
paso varias veces y seleccionan el resultado de diseño que mejor se
adapte a la proporción (la proporción entre la anchura y la altura
del área de dibujo). Por ello, las modalidades de diseño de volcado
son más lentas.
- Paso 1: Calcular el árbol de expansión
- Si el gráfico no es conexo, el algoritmo de diseño elige un nodo raíz para cada componente conectado. Empezando por el nodo raíz, recorre el gráfico para escoger los enlaces del árbol de expansión. Si el gráfico es un árbol puro, se eligen todos los enlaces. Si el gráfico tiene ciclos, algunos enlaces no se incluyen como parte del árbol de expansión. Estos enlaces se denominan enlaces que no son de árbol, mientras que los enlaces del árbol de expansión se denominan enlaces de árbol. Los enlaces que no son de árbol se pasan por alto en el paso 2 del algoritmo.En las figuras Diseño de árbol en modalidad de diseño libre con alineación central y dirección del flujo a la derecha, Diseño de árbol con dirección del flujo hacia abajo, estilo de enlace ortogonal y alineación de volcado en algunos nodos finales y Diseño de árbol en modalidad de diseño radial con proporción 1,5 , la raíz es el nodo que no tiene nodo padre. En el árbol de expansión, todos los nodos excepto la raíz tienen un nodo padre. Todos los nodos que tienen el mismo padre se denominan nodos hijo con respecto al padre y hermanos entre sí. Los nodos sin nodos hijo se denominan nodos finales. Cada nodo hijo de un nodo inicia un subárbol (también conocido como una rama del árbol).Árbol de expansión
- Paso 2: Calcular las posiciones de los nodos y las formas de los enlaces
- El algoritmo de diseño dispone los nodos según la modalidad de diseño y las opciones de desplazamiento y alineación. En la modalidad libre y de nivel, los nodos se disponen horizontal o verticalmente de modo que todos los enlaces de árbol fluyan aproximadamente en la misma dirección. En las modalidades de diseño radial, los nodos se disponen en círculos o elipses alrededor de la raíz, de modo que todos los enlaces de árbol fluyan como radios desde la raíz. Por último, las formas de los enlaces se calculan en función del estilo del enlace y de las opciones de alineación.
Ejemplo de DA
En el ejemplo de código siguiente se utiliza la clase
ibm_ilog.graphlayout.tree.TreeLayout. En este código de ejemplo se muestra cómo ejecutar un
Diseño de árbol:
var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout(); graph.setNodeLayout(treeLayout); graph.performGraphLayout();
Importante
Todas las explicaciones de los apartados siguientes
sobre la forma de los enlaces de Diseño de árbol sólo son válidas si
el diseño de enlaces está
inhabilitado.