¿Alguien sabe de una implementación pura basada en Javascript de los diagramas de flujo direccionales que GraphViz es capaz de generar? NO estoy interesado en resultados visuales bonitos, pero los cálculos para calcular la profundidad máxima de cada nodo, junto con el diseño de líneas bezier que están optimizadas para minimizar la cantidad de bordes que se cruzan cuando se trata de un gráfico en lugar de un árbol de información. Me gustaría ejecutar este código tanto dentro de un navegador; Soy consciente de que podría incrustar fácilmente Graphviz en mi servidor Node como una extensión, o incluso popen()
hacerlo, y transmitir sobre la información gráfica en el .dot
formato.
Como referencia, aquí hay una salida típica de GraphViz. Observe cómo los elementos se apilan y espacian para permitir que las líneas de conexión viajen entre los nodos, sin cruzarse (muy a menudo) o pasar a través de los nodos.
fuente
Respuestas:
Eche un vistazo a esta implementación pura de JavaScript de un renderizador de lienzo .dot:
http://ushiroad.com/jsviz/
La biblioteca no está documentada: el autor definitivamente debería publicitarla y documentarla más (lo contactaré para sugerirle que la publique en github, como mínimo).
Actualización : el código ha sido enviado a github: https://github.com/gyuque/livizjs
Actualización (14/2/2013) : ¡otro competidor ha surgido! cualquier persona interesada en el tema definitivamente debería echar un vistazo a la página de ejemplo de Viz.js y al repositorio de github .
Actualización (16/07/2020) : (siete años después) http://webgraphviz.com/ también es genial! :-)
fuente
Después de buscar por todas partes, finalmente encontré la respuesta.
La solución fue que alguien compilara Graphviz a Javascript usando llvm + emscripten. Aqui esta el link:
http://viz-js.com/
La fuente se puede encontrar en: https://github.com/mdaines/viz.js
Y para simplemente usar una página web:
fuente
Después de mirar todas las opciones, encontré viz.js ( https://github.com/mdaines/viz.js/ ) basado en jsviz y graphviz.js para tener una API utilizable desde una página web, y suficientes ejemplos para entender.
fuente
Uno podría intentar convertir graphviz a javascript, tal como se hizo para el ejemplo de 'lector de PDF': https://github.com/kripken/emscripten
fuente
Este no es un reemplazo de graphviz listo, pero d3.js es una biblioteca que puede hacer varios diseños a partir de datos dados y sería una gran plataforma para implementar graphviz.
Aquí hay un ejemplo de diseños dirigidos por la fuerza, que es una forma de lo que hace graphviz.
Aquí hay un discurso sobre diseños con diapositivas interactivas increíblemente increíbles .
Para conocer el proyecto, los tutoriales son muy buenos.
fuente
Aquí hay una compilación cruzada de Graphviz a Javascript hecha usando Emscripten
https://github.com/bpartridge/graphviz.js
fuente