El algoritmo DA

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).
Ejemplo
de un árbol de expansión
Á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.