Question

Je recherche une bibliothèque de structure de graphe simple pour C ++. Je souhaite intégrer la bibliothèque à notre visualiseur basé sur wxWidgets. En résumé, je recherche quelque chose comme graphviz , sauf dynamique, c'est-à-dire lorsqu'un événement se produit, seul le changement de graphique doit être chargé, pas l'affichage complet. Il existe un dynagraph , mais il semble que ce soit un projet mort. On m'a déjà suggéré d'utiliser VTK, mais c'est un poids lourd.

Je recherche une bibliothèque de type open source, sans copyleft, disponible à des fins commerciales (GPL est disponible, LGPL devrait être OK). Je suis ouvert aux suggestions que Google ne donnera pas.

Était-ce utile?

La solution

La mise en page générée par Graphviz est basée sur la structure globale. Tout ajout peut modifier considérablement la sortie (sauf si vous utilisez des coordonnées fixes, auquel cas vous ne poseriez probablement pas cette question). Fondamentalement, si vous souhaitez un placement automatique des éléments, vous devez accepter l'une des solutions suivantes:

  • Lorsqu'un nouvel élément est placé, une simulation physique est exécutée en temps réel, ce qui provoque un rebond important des nœuds jusqu'à ce qu'ils s'installent dans leurs nouveaux emplacements. Ce sera lent, mais le résultat sera "agréable". changements.
  • Lorsqu'un nouvel élément est placé, tout le graphe est redessiné (physique / tout ce qui est caché, mais tout est modifié). Cela sera plus rapide car vous n’avez pas à redessiner, mais les emplacements relatifs des nœuds peuvent être complètement différents.
  • Lorsqu'un nouvel élément est placé, les éléments existants ne sont pas modifiés. Après suffisamment de mises à jour dynamiques, votre graphique va ressembler à de la merde, car le placement automatique est un problème d'optimisation globale.

Désolé, je ne peux pas répondre à votre question, mais cela peut peut-être aider à expliquer pourquoi ce que vous recherchez peut tout simplement ne pas exister (ou être bon).

Autres conseils

Pour surmonter certains des problèmes lors de l’utilisation de graphviz (décrit par Tom). Nous faisons en sorte que les coordonnées du monde du visualiseur coïncident avec les coordonnées du monde de graphviz.

alors. en supposant que chaque élément visuel possède un identifiant unique, construisez un graphique utilisant ces éléments. affiche le graphique sous forme de texte. réaligner tout en fonction de l'analyse de la sortie. ?

-

Michael

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top