Connaissez-vous une implémentation open source de force-directed layout en C++ utilisée pour les interfaces graphiques? De préférence BSD/MIT/Apache ou autre licence (non-GPL).Implémentation de mise en page forcée en C++
Répondre
L'excellent Boost.Graph library fournit une large gamme d'algorithmes, parmi lesquels quelques algorithmes de disposition. Je recommande d'utiliser soit Kamada-Kawai spring layout ou Fruchterman-Reingold force-directed layout. Est très permissive, donc ne vous inquiétez pas à ce sujet.
Le premier résultat Google est VTK. Un autre me prend à vtkGraphLayoutView.
OverView
https://www.kitware.com/InfovisWiki/index.php/Main_Page
Il y a quelques étapes d'installation si vous voulez cette application, toutes les informations sont sur ce wiki. C'est une application construite sur VTK. La fonction spécifique OverView a la capacité de représenter un graphique d'information (pas nécessairement géométrique) en 2 dimensions.
Comme indiqué par dirkgently, VTK a une disposition de graphique dirigée par la force. L'avantage d'utiliser quelque chose comme OverView est que vous pouvez facilement créer un plug-in personnalisé pour OverView, que vous feriez pour lire vos données et les afficher en utilisant la stratégie de mise en page dirigée par la force. Si vous ne voulez pas dépendre de OverView, il est très facile d'extraire votre code de plug-in et de ne faire référence qu'à OverView puisque tout le rendu est géré en dehors de votre plug-in.
Avez-vous regardé neato de graphviz. Ce guide va même dans les détails pour utiliser graphviz comme une bibliothèque. Le guide inclut l'utilisation de l'algorithme de mise en page fdp, qui semble être exactement ce que vous voulez. Tout graphviz relève du Common Public License.
- 1. Implémentation de la mise en page à l'aide de MVP
- 2. Manhattan algorithme de mise en page
- 3. mise en page Fullscreen
- 4. Problème de mise en page WPF
- 5. GridView Mise en page/sortie
- 6. Apprentissage des algorithmes de mise en page graphique
- 7. Implémentation de PBKDF2 en C# avec Rfc2898DeriveBytes
- 8. Mise en route en C
- 9. Crystal reports Mise en page
- 10. Mise en page CSS compliqué
- 11. Mise en page Optimal algorithme
- 12. Mise en page XY JAVA
- 13. Mise en page Dojo/Dijit - essayé d'ajouter une bannière en haut d'une mise en page existante
- 14. problème Blogger mise en page
- 15. Portage moteur de mise en page webkit
- 16. Question de mise en page Myspace Myspace
- 17. mise en page de table HTML question
- 18. Blackberry - champs animation de mise en page
- 19. Moteurs de mise en page Windows Forms
- 20. problème de mise en page Flex
- 21. Problème de mise en page Android ScrollView
- 22. Mise en page de colonne CSS
- 23. WPF question de mise en page
- 24. mise en page de l'application javaEE
- 25. Implémentation radix/mtrie open-source en C?
- 26. Implémentation des filtres Photoshop en C#
- 27. Implémentation d'une bibliothèque de threads C++ en C++
- 28. Quelle est la meilleure façon de convertir la mise en page de table en mise en page CSS?
- 29. Mise en page en cours de rendu deux fois
- 30. mise en œuvre abstraite d'interface explicite en C#
Pourquoi cela est-il déprécié? C'est Open Source, gratuit et possède une licence BSD. – dirkgently
+1 parce que les votes négatifs anonymes me rendent triste. –
Ayant utilisé VTK, je pense que c'est vraiment une bonne solution à votre problème. De plus, il est entièrement multi-plateforme Linux/Mac/Windows. ET il a une liaison pour Python/Java et tcl/tk au cas où vous en auriez besoin. –