Parâmetros de espaçamento

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 no layout de balão: à esquerda: regular, à direita: proporcional (lento)
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 layout de balão, modo de raio: à esquerda: uniforme, à direita: folhas
uniformes (subárvores maiores possuem um raio variável)
Modo de raio: à esquerda: uniforme, à direita: folhas uniformes (subárvores maiores possuem um raio variável)
Modo
de layout de balão, modo de raio: à esquerda: folhas uniformes otimizadas,
à direita: variável otimizado.
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.