Je dessine des graphiques avec une disposition orientée force, et le problème est que les graphiques créés sont orientés de façon aléatoire et imprévisible, ce qui les rend un peu confus. Par exemple, supposons que le noeud A soit membre des deux graphes séparés G1 et G2. Avec une disposition orientée par force, le nœud A peut se retrouver sur le côté gauche de G1, mais sur le côté droit de G2. Maintenant j'essaye de réduire la confusion en tournant automatiquement le graphique d'une manière déterministe après que l'algorithme de disposition de graphe ait été appliqué à lui. On pourrait calculer le minimum bounding rectangle pour cela, mais il serait plus agréable si l'algorithme de rotation pouvait inclure certaines des informations supplémentaires sur les sommets et les arêtes.Rotation automatique d'un graphique
Dans ce cas, chaque sommet est un document avec un horodatage et un nombre de mots, et les bords représentent des relations non dirigées et dirigées entre les documents. Peut-être y at-il un moyen de faire pivoter le graphique de sorte que les documents plus anciens se concentrent sur la gauche, et les plus récents sur la droite? Pareil avec des liens: Les flèches devraient pointer plus vers la droite que vers la gauche. Cela semble une approche raisonnable, mais je n'ai aucune idée de comment calculer quelque chose comme ça (et Google n'a pas vraiment aidé non plus).
Notes:
- Je pense qu'il ya des algorithmes de mise en page graphique qui prennent soin de la rotation, mais je préfère une solution qui implique la mise en page force dirigée.
- On pourrait laisser l'utilisateur tourner le graphique à la main, mais cela nécessite de sauvegarder l'orientation du graphique, ce que je préfère éviter, car il n'y a pas de place pour cela dans la base de documents.
Merci beaucoup pour la réponse. Malheureusement, aucune de ces approches ne fonctionnera dans mon cas. Le premier ne fonctionnera pas car il n'y a pas de transition entre les graphes (parfois graphe A -> graphe B, mais en général il n'y a pas de tel ordre). Le second ne fonctionnera pas parce que la rotation procrustes est basée sur la minimisation de la "distance procrustes" entre deux formes --- dans mon cas, il n'y a qu'une seule forme. De toute façon, je vais vous donner un upvote pour l'effort et la bonne idée de normaliser l'échelle :-) –
Oui, j'ai mal lu la question. Peut-être avez-vous besoin d'un algorithme dirigé par la force qui incorpore la directionnalité? par exemple. Dwyer, T. et Koren, Y. et Marriott, K., Dessin des graphes dirigés en utilisant la programmation quadratique, les transactions IEEE sur la visualisation et l'infographie, 12 (4), 536-548 (2006) et Dwyer, T. et Koren, Y ., Dig-CoLa: Diagramme Dirigé Mise en page par Minimisation d'Energie Contrainte, Actes du Symposium IEEE sur la Visualisation de l'Information (InfoVis'05), IEEE Computer Society, 65-72, 2005. –
Whoa, programmation quadratique ?? Je n'avais pas besoin de quelque chose d'aussi sophistiqué pour un si petit problème ;-) Mais cela ressemble à la solution à mon problème, alors merci encore! –