Deslocamento de Ramificação
O modo de layout de balão tem um espaçamento mínimo apenas
entre os nós, e não distingue entre deslocamentos mínimos de irmãos,
ramificações e relacionamentos pai-filho. O espaçamento mínimo entre os
nós é controlado pelo deslocamento de ramificação, como no modo livre e no
modo de nível. O deslocamento de irmão e o deslocamento de pai/filho não
têm efeito no modo de layout de balão.
Para especificar o deslocamento mínimo entre os nós:
Use o método setBranchOffset:
treeLayout.setBranchOffset(20);
Espaçamento de Ângulo
Os ângulos entre setores de um balão e o raio do balão têm
mais efeito no espaçamento do layout do que o deslocamento mínimo. Uma
opção inválida de ângulos do setor requer raios maiores para evitar
sobreposições e, portanto, uma área maior para o layout.
Portanto, o layout oferece diferentes modos de espaçamento de ângulo.
Na figura a seguir, o layout à esquerda usa o espaçamento de
ângulo regular e o layout à direita usa o espaçamento de ângulo
proporcional. À direita, o ângulo do setor da subárvore azul é muito maior que os
ângulos do setor de cada subárvore verde, desde que a subárvore azul seja
maior que as subárvores verdes.

Espaçamento de ângulo: à esquerda: regular, à direita:
proporcional
(lento)
Para especificar o espaçamento de ângulo:
Use o método setBalloonAngleSpacing:
treeLayout.setBalloonAngleSpacing(ibm_ilog.graphlayout.tree.TreeLayout.REGULAR);
Os valores válidos para o modo são:
- ibm_ilog.graphlayout.tree.TreeLayout.REGULAR
- O intervalo do ângulo disponível em um nó é dividido uniformemente para que cada balão da subárvore no nó possa ocupar o mesmo ângulo. This looks uniform but tends to waste space if the subtrees are not the same size. Consulte a figura de espaçamento de ângulo, imagem à esquerda.
- ibm_ilog.graphlayout.tree.TreeLayout.FAST_PROPORTIONAL
- O intervalo do ângulo disponível em um nó é dividido proporcionalmente para que os balões da subárvore maior no nó possam ocupar ângulos maiores. Por isso, uma subárvore maior requer um raio menor, portanto, este modo usa menos espaço. O algoritmo usa uma heurística rápida para calcular os intervalos de ângulos. This heuristic is not precise and sometimes produces asymmetric layouts. A qualidade do resultado depende essencialmente da opção do ângulo inicial. A heurística é executada em tempo linear.
- ibm_ilog.graphlayout.tree.TreeLayout.PROPORTIONAL
- Igual ao modo proporcional rápido: o intervalo do ângulo disponível em um nó é dividido proporcionalmente para que os balões da subárvore maior no nó possam ocupar ângulos maiores. No entanto, o algoritmo usa uma heurística lenta que seja mais precisa, usa o espaço de forma ainda melhor e produz layouts simétricos. A qualidade do resultado não depende da opção do ângulo inicial. A heurística é executada em tempo quadrático. Este é o modo padrão. Consulte a figura de espaçamento do ângulo, imagem à direita.
Modo de Raio
Quando os ângulos do setor tiverem sido escolhidos para os
balões da subárvore, o raio (comprimento do link do pai ao filho) deverá
ser calculado para que nenhuma subárvore seja sobreposta. A opção de raio
é uma alternativa entre simetria e área. Choosing a uniform radius
for all child nodes of the same parent often requires much space.
Consulte a figura que mostra exemplos de layouts de raios uniforme e
variável, imagem superior esquerda. Se o raio for variável, as simetrias
serão perdidas.
As a compromise, you can choose to have a variable radius only for
large subtree balloons and keep a uniform radius for all the leaves
of a parent. See the figure showing examples of uniform and variable
radius layouts, upper right image, where the link towards the blue
subtree is longer than the links to the green subtrees. Se as
simetrias não forem importantes, poderá ser selecionada uma fase de
otimização adicional que desloca os balões para ficarem mais próximos uns
dos outros. A fase de otimização pode ser aplicada a subárvores que não
são folhas. Consulte a figura que mostra exemplos de layouts de raios
uniforme e variável, imagem inferior esquerda.
Esta fase também pode ser usada para deslocar folhas juntas. Consulte as
figuras que mostram exemplos de layouts de raios uniforme e variável,
imagem inferior direita. No último caso, as folhas geralmente são um tanto
dispersas e não estão mais em um círculo.

Modo de raio: à esquerda: uniforme, à direita: folhas
uniformes (subárvores maiores possuem um raio variável)

Modo de raio: à esquerda: folhas uniformes otimizadas, à
direita: variável otimizado
Para especificar o modo de raio:
Use o método setBalloonRadiusMode:
treeLayout.setBalloonRadiusMode(ibm_ilog.graphlayout.tree.TreeLayout.UNIFORM_RADIUS);
Os valores válidos para
mode
são:- ibm_ilog.graphlayout.tree.TreeLayout.UNIFORM_RADIUS
- Os raios de todos os balões da subárvore que são nós-filhos do mesmo nó são uniformes. Este modo requer a área maior, mas também fornece o maior número de simetrias no layout. However, if the tree is not balanced, it usually wastes much space. Consulte a figura do raio variável, imagem superior esquerda.
- ibm_ilog.graphlayout.tree.TreeLayout.UNIFORM_LEAVES_RADIUS
- Os raios de todas as folhas que são nós-filhos do mesmo nó são uniformes, no entanto, o raio de um balão que contém mais de um nó pode variar. Este valor é melhor para árvores não balanceadas, porque ele usa o espaço disponível de forma muito melhor. Use este valor se as simetrias no layout forem importantes. Consulte a figura do raio variável, imagem superior direita.
- ibm_ilog.graphlayout.tree.TreeLayout.VARIABLE_RADIUS
- O raio de todos os diferentes balões-filhos no mesmo nó-pai pode variar. It even varies for child nodes of the same node, if these child nodes have different node sizes.
- TreeLayout.OPTIMIZED_UNIFORM_LEAVES_RADIUS
- O posicionamento inicial é feito como no modo de raio de folhas uniforme. Além disso, uma heurística de otimização desloca subárvores juntas para reduzir os raios. Isto tem a vantagem de requisitos de espaço menor, mas perde simetrias no diagrama. As folhas que possuem o mesmo nó-pai ainda mantêm o mesmo raio. Consulte a figura do raio variável, imagem inferior esquerda.
- ibm_ilog.graphlayout.tree.TreeLayout.OPTIMIZED_VARIABLE_RADIUS
- O posicionamento inicial é feito como no modo de raio variável. Além disso, uma heurística de otimização desloca subárvores juntas para reduzir os raios. It has the advantage of smaller space requirements but loses symmetries in the diagram. It affects even leaves of the same parent, hence they can end up rather scattered around the parent. Consulte a figura do raio variável, imagem inferior direita.