O desenho no modo de layout radial e no modo de layout livre
pode ser ajustado de acordo com a proporção de aspecto da área de desenho. Para balancear a altura e espessura do desenho, o modo de layout livre
também pode usar o alinhamento invertido.
Tip-over alignment can be specified explicitly for individual
nodes. The Tree Layout algorithm also has layout modes that automatically
use tip-over alignment when needed.
Os modos de layout invertidos funcionam da seguinte forma:
Vários layouts de tentativa são executados no modo de layout
livre.
Para cada tentativa, o alinhamento invertido é configurado
para alguns nós individuais, enquanto o alinhamento especificado dos
demais nós é preservado.
O algoritmo seleciona o layout de tentativa que melhor se
ajusta à proporção de aspecto especificada da área de desenho.
Use o método setAspectRatio, cujo valor é um Número.
Os modos invertidos são um pouco mais demorados do que os
outros modos de layout.
For large trees, it is recommended that you set the allowed
layout time to a high value (for instance, 50 seconds) when using
the tip-over modes.
Para configurar este modo:
Chame:
layout.setAllowedTime(50000);
Usando esta chamada, você evita ter pouco tempo para
iterações suficientes do algoritmo de layout. Como seria muito demorado
verificar todas as possibilidades do uso do alinhamento invertido, existem
heurísticas que verificam apenas algumas avaliações, de acordo com as
seguintes estratégias diferentes mostradas na figura a seguir.

Estratégias invertidas
Inverter Folhas
Para usar esta estratégia invertida, configure o modo de
layout da seguinte forma:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_LEAVES_OVER);
A heurística primeiro tenta o layout sem opções invertidas
adicionais. Em seguida, ela tenta inverter as folhas, em seguida, as folhas e seus
pais, em seguida, também os pais destes pais, e assim por diante. Portanto, os nós mais próximos da raiz usam o alinhamento normal e os nós
mais próximos das folhas usam o alinhamento invertido.
Inverter Raízes
Para usar esta estratégia invertida, configure o modo de
layout da seguinte forma:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_OVER);
A heurística primeiro tenta o layout sem opções invertidas
adicionais. Em seguida, ela tenta inverter o nó-raiz, em seguida, a raiz e seus
nós-filhos, em seguida, também os nós-filhos destes nós-filhos e assim por
diante. Portanto, os nós mais próximos das folhas usam o alinhamento
normal e os nós mais próximos da raiz usam o alinhamento invertido.
Inverter Raízes e Folhas
Para usar esta estratégia invertida, configure o modo de
layout da seguinte forma:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_AND_LEAVES_OVER);
A heurística primeiro tenta o layout sem opções invertidas
adicionais. Em seguida, ela tenta inverter o nó-raiz e as folhas
simultaneamente; em seguida, a raiz e seus nós-filhos e as folhas e o pai
delas; em seguida, também os nós-filhos destes nós-filhos e os pais destes
pais, e assim por diante. O resultado é que os nós no meio da árvore usam
o alinhamento normal e os nós mais próximos da raiz ou das folhas usam o
alinhamento invertido.
This strategy is the slowest, because it includes all
trials of the strategy tip leaves
over as well as all trials of the strategy tip roots over.
Inversão Rápida
A inversão rápida fornece um compromisso entre as demais
estratégias. A heurística tenta uma pequena seleção das outras estratégias,
nem todas as possibilidades. Portanto, é a estratégia mais
rápida para gráficos grandes.
Para usar esta estratégia, configure o modo de layout da
seguinte forma:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_OVER);
É possível que todas as quatro estratégias gerem o mesmo
resultado, porque as estratégias não são separadas; ou seja, algumas
avaliações são executadas em todas as quatro estratégias. Além disso, os
modos invertidos não produzem necessariamente o layout ideal que fornece o
melhor ajuste à proporção de aspecto. A razão é que algumas configurações
não usuais de alinhamento invertido nunca são tentadas, porque isso faria
o tempo de execução ser muito alto.