Quelqu'un est-il au courant d'une implémentation pure et basée sur Javascript des diagrammes de flux directionnels que GraphViz est capable de générer? Je ne suis PAS intéressé par la sortie de jolis visuels, mais les calculs pour déterminer la profondeur maximale de chaque nœud, ainsi que la disposition des lignes de Bézier qui sont optimisées pour minimiser le nombre d'arêtes qui se croisent lorsque vous traitez avec un graphique plutôt qu'un arbre d'information. Je voudrais exécuter ce code à la fois dans un navigateur; Je suis conscient que je pourrais facilement intégrer Graphviz dans mon serveur Node en tant qu'extension, ou même popen()
lui et diffuser des informations graphiques dans le .dot
format.
Pour référence, voici une sortie GraphViz typique. Notez comment les éléments sont empilés et espacés pour permettre aux lignes de connexion de se déplacer entre les nœuds, sans se croiser (très souvent) ni passer par des nœuds.
la source
Réponses:
Jetez un œil à cette implémentation JavaScript pure d'un moteur de rendu de canevas .dot:
http://ushiroad.com/jsviz/
La bibliothèque n'est pas documentée - l'auteur devrait certainement la publier et la documenter davantage (je le contacterai pour lui suggérer de la mettre sur github, au moins).
Mise à jour : le code a été poussé sur github: https://github.com/gyuque/livizjs
Mise à jour (14/2/2013) : un autre concurrent est apparu! toute personne intéressée par le sujet devrait absolument jeter un œil à la page d'exemple de Viz.js et au repo github .
Mise à jour (16/07/2020) : (sept ans plus tard) http://webgraphviz.com/ est également génial! :-)
la source
Après avoir cherché loin et bas, j'ai finalement trouvé la réponse.
La solution était que quelqu'un croise Graphviz en Javascript en utilisant llvm + emscripten. Voici le lien:
http://viz-js.com/
La source peut être trouvée à: https://github.com/mdaines/viz.js
Et pour simplement utiliser une page Web:
la source
Après avoir examiné toutes les options, j'ai trouvé viz.js ( https://github.com/mdaines/viz.js/ ) basé sur jsviz et graphviz.js pour avoir une API utilisable à partir d'une page Web, et suffisamment d'exemples pour comprendre.
la source
On pourrait essayer de convertir graphviz en javascript, comme cela a été fait pour l'exemple du 'lecteur PDF': https://github.com/kripken/emscripten
la source
Ce n'est pas un remplacement de graphviz prêt à l'emploi, mais d3.js est une bibliothèque qui peut faire diverses mises en page à partir de données données et serait une excellente plate-forme pour implémenter graphviz.
Voici un exemple de dispositions dirigées par la force qui est une forme de ce que fait graphviz.
Voici un discours sur les mises en page en avec des diapositives interactives incroyablement impressionnantes .
Pour connaître le projet, les tutoriels sont très bons.
la source
Voici une compilation croisée de Graphviz vers Javascript réalisée à l'aide d'Emscripten
https://github.com/bpartridge/graphviz.js
la source