Paramètres spécifiques de l'agencement FL

Les paramètres suivants sont spécifiques à la ForceDirectedLayout.

Style de lien (FL)

Lorsque l'algorithme d'agencement déplace les noeuds, les liens straight-line "suivent" automatiquement les nouvelles positions de leurs noeuds de fin. Si le graphe contient d'autres types de liens, la forme du lien n'est peut-être pas appropriée car les points intermédiaires du lien ne seront pas déplacés. Dans ce cas, vous pouvez demander à l'algorithme d'agencement de supprimer automatiquement tous les points intermédiaires des liens (le cas échéant).
Pour spécifier que l'algorithme doit supprimer automatiquement tous les points intermédiaires des liens (le cas échéant) :
Exemple de définition du style de lien
forceDirectedLayout.setLinkStyle(
  ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.STRAIGHT_LINE_STYLE);  
Les valeurs valides pour le style sont les suivantes :
  • ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.NO_RESHAPE_STYLE
    Aucun des liens n'est reformé d'aucune manière.
    ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.STRAIGHT_LINE_STYLE
    Tous les points intermédiaires des liens (le cas échéant) sont supprimés. Il s'agit de la valeur par défaut.

Connexion des liens au centre de noeuds (FL)

Cette fonction est partagée par toutes les sous-classes de l'agencement de style de lien de base. Pour plus d'informations, voir Connexion de liens à un centre de noeud.

Fonctions multiliens et auto-lien (FL)

Ces fonctions sont partagées par toutes les sous-classes de l'agencement de style de lien de base. Pour plus d'informations, voir Fonctions multilien et autolien.

Nombre d'itérations (FL)

Le calcul itératif de l'algorithme d'agencement est interrompu si le délai imparti est dépassé (voir Temps imparti) ou si le nombre d'itérations dépasse le nombre d'itérations autorisé.
Pour indiquer le nombre d'itérations :
Exemple de définition du nombre nombre autorisé d'itérations
forceDirectedLayout.setAllowedNumberOfIterations(100);  

Longueur préférée (FL)

L'objectif principal de cet algorithme d'agencement est d'obtenir un agencement dans lequel tous les liens ont la même longueur, appelée “longueur préférée”.
Pour indiquer la longueur préférée :
De manière globale
  • Exemple d'indication de la longueur préférée de manière globale
    forceDirectedLayout.setPreferredLinksLength(200);
    
    La valeur par défaut est 60,0.
De manière individuelle
Il est également possible d'indiquer une longueur pour les liens individuels.
  • Exemple d'indication de la longueur préférée de manière individuelle
    forceDirectedLayout.setPreferredLength(link, 100);  
    
    Pour obtenir la valeur en cours, utilisez la méthode suivante :
    var length = forceDirectedLayout.getPreferredLength(link);  
    
Si aucune longueur spécifique n'est indiquée pour un lien, les paramètres globaux sont utilisés.

Respecter les tailles de noeud (FL)

Par défaut, l'algorithme d'agencement prend en compte la taille (largeur et hauteur) des noeuds. Pour des raisons d'efficacité, les noeuds peuvent être rapprochés des points placés au centre du cadre de délimitation des noeuds. Avec des noeuds de plus grande taille, il est possible d'augmenter le paramètre Longueur préférée de sorte que les noeuds ne se chevauchent pas.
Pour améliorer les performances des graphes comportant des tailles de noeuds constantes, l'algorithme propose un mode spécial dans lequel la taille particulière de chaque noeud n'est pas prise en considération.
Pour définir ce mode :
Exemple dans lequel la taille des noeuds n'est pas prise en compte
forceDirectedLayout.setRespectNodeSizes(false);     
La valeur par défaut est true.

Forcer l'adaptation à la région d'agencement (FL)

Il est difficile de choisir une taille appropriée pour la région d'agencement de cet algorithme d'd'agencement. Si la région d'agencement spécifiée est trop petite pour un graphe particulier, l'agencement qui en résulte n'est pas idéal. Pour cette raison, par défaut, l'algorithme d'agencement Force-directed n'utilise pas le paramètre Région d'agencement.
Il peut utiliser autant d'espace que nécessaire pour agencer le graphe.
Pour indiquer si l'algorithme d'agencement doit utiliser l'a région d'agencement :
Exemple d'utilisation du paramètre Région d'agencement
forceDirectedLayout.setForceFitToLayoutRegion(true);  
La valeur par défaut du paramètre est false.

Mode d'agencement

Pour répondre aux différents besoins, l'algorithme propose trois modes d'agencement facultatifs :
Mode incrémentiel
L'algorithme démarre à partir de la position en cours et essaie de manière itérative de converger vers l'agencement optimal. Dans certains cas, ce mode évite une importe réorganisation du graphe, ce qui permet de conserver autant que possible la représentation mentale de l'utilisateur. Toutefois, ceci n'est pas garanti et dépend de la distance qui sépare la position initiale des noeuds et la position qui répond aux critères de l'algorithme.
Mode non incrémentiel
L'algorithme est libre de réorganiser le graphe sans essayer de demeurer proche des positions initiales. Il arrive souvent que le mode non incrémentiel soit plus rapide que le mode incrémentiel, même si cela se fait parfois au détriment de la qualité.
Mode multiniveaux rapide
L'algorithme utilise stratégie de décomposition du graphe multiniveaux qui se traduit par une importante augmentation de la vitesse. Ce mode est généralement le plus rapide pour les graphes de taille moyenne et importante.
La valeur par défaut est ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.INCREMENTAL_MODE.
Pour définir le mode d'agencement :
Exemple de définition du mode d'agencement
forceDirectedLayout.setLayoutMode(
  ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.FAST_MULTILEVEL_MODE);