Parâmetros Específicos de FL

Os parâmetros a seguir são específicos da classe ForceDirectedLayout.

Estilo de Link (FL)

When the layout algorithm moves the nodes, straight-line links will automatically “follow” the new positions of their end nodes. If the graph contains other types of link, the shape of the link might not be appropriate because the intermediate points of the link are not moved. Neste caso, será possível solicitar que o algoritmo de layout remova automaticamente todos os pontos intermediários dos links (se houver).
Para especificar que o algoritmo remova automaticamente todos os pontos intermediários dos links (se houver):
Exemplo de Configuração do Estilo de Link
forceDirectedLayout.setLinkStyle(
  ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.STRAIGHT_LINE_STYLE);  
Os valores válidos para o estilo são:
  • ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.NO_RESHAPE_STYLE
    Nenhum dos links é redimensionado de nenhuma maneira.
    ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.STRAIGHT_LINE_STYLE
    Todos os pontos intermediários dos links (se houver) serão removidos. Este valor é o padrão.

Connect links to node center (FL)

Esse recurso é compartilhado por todas as subclasses do Layout de Estilo de Link Básico. Consulte Connect links to node center para obter detalhes.

Recursos Multilink e Self-link (FL)

Esses recursos são compartilhados por todas as subclasses do Layout de Estilo de Link Básico. Consulte Recursos Multilink e Self-link para obter detalhes.

Número de Iterações (FL)

O cálculo iterativo do algoritmo de layout será parado se o tempo exceder o tempo permitido (consulte Tempo Permitido) ou se o número de iterações exceder o número permitido de iterações.
Para especificar o número de iterações:
Exemplo de Configuração do Número Permitido de Iterações
forceDirectedLayout.setAllowedNumberOfIterations(100);  

Comprimento preferencial (FL)

O principal objetivo deste algoritmo de layout é obter um layout em que todos os links tenham o mesmo comprimento, chamado de “comprimento preferencial”.
Para especificar o comprimento preferencial:
Globalmente
  • Exemplo de Especificação do Comprimento Preferencial Globalmente
    forceDirectedLayout.setPreferredLinksLength(200);
    
    O valor padrão é 60.0.
Individualmente
Também é possível especificar um comprimento para links individuais.
  • Exemplo de Especificação do Comprimento Preferencial Individualmente
    forceDirectedLayout.setPreferredLength(link, 100);  
    
    Para obter o valor atual, use o seguinte método:
    var length = forceDirectedLayout.getPreferredLength(link);  
    
Se um comprimento específico não for especificado para um link, serão usadas as configurações globais.

Respeitar Tamanhos de Nós (FL)

Por padrão, o algoritmo de layout considera o tamanho (largura e altura) dos nós. Por razões de eficiência, os nós podem ser aproximados com pontos posicionados no centro da caixa delimitadora dos nós. Ao lidar com nós grandes, o parâmetro de comprimento preferencial pode ser aumentado de forma que os nós não se sobreponham.
To improve the performances of graphs with constant node sizes, the algorithm provides a special mode in which the particular size of each node is not considered.
Para configurar este modo:
Exemplo de não Consideração do Tamanho de Nós
forceDirectedLayout.setRespectNodeSizes(false);     
O valor padrão é true.

Forçar ajuste à região de layout (FL)

É difícil escolher um tamanho apropriado para a região de layout deste algoritmo de layout. If the specified layout region is too small for a particular graph, the resulting layout is not the best. Por isso, por padrão, o algoritmo de Layout Force-directed não usa o parâmetro da região de layout.
Ele pode usar a quantidade de espaço que for necessária para organizar o gráfico.
Para especificar se o algoritmo de layout deve usar a região de layout:
Exemplo de Uso do Parâmetro da Região de Layout
forceDirectedLayout.setForceFitToLayoutRegion(true);  
O valor padrão do parâmetro é false.

Modo de Layout

To fit various needs, the algorithm provides three optional layout modes:
Modo Incremental
O algoritmo inicia a partir da posição atual e tenta iterativamente convergir na direção do layout ideal. Em alguns casos, este modo evita uma reorganização principal do gráfico, o que ajuda a preservar o mapa mental do usuário o máximo possível. However, it is not guaranteed and depends on how far the initial position of the nodes is from the position that satisfies the criteria of the algorithm.
Modo não incremental
O algoritmo é livre para reorganizar o gráfico sem tentar permanecer próximo das posições iniciais. Geralmente, o modo não incremental é mais rápido do que o modo incremental, embora às vezes tenha uma qualidade inferior.
Modo multinível rápido
O algoritmo usa uma estratégia de decomposição de gráfico multinível que gera um ganho significativo de velocidade. Este modo geralmente é o mais rápido para gráficos médios e grandes.
O valor padrão é ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.INCREMENTAL_MODE.
Para configurar o modo de layout:
Exemplo de Configuração do Modo de Layout
forceDirectedLayout.setLayoutMode(
  ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.FAST_MULTILEVEL_MODE);