Alguém está ciente de uma implementação pura, baseada em Javascript, dos diagramas de fluxo direcional que o GraphViz é capaz de gerar? Eu não estou interessado na saída visual bonita, mas nos cálculos para descobrir a profundidade máxima de cada nó, juntamente com o layout das linhas bege que são otimizadas para minimizar o número de arestas que se cruzam quando você está lidando com um gráfico em vez de uma árvore de informação. Eu gostaria de executar esse código em um navegador; Estou ciente de que poderia facilmente incorporar o Graphviz ao meu servidor Node como uma extensão ou até popen()
mesmo transmiti-lo por informações gráficas no .dot
formato.
Para referência, aqui está uma saída típica do GraphViz. Observe como os elementos são empilhados e espaçados para permitir que as linhas de conexão viajem entre os nós, sem cruzar (com muita frequência) ou passar pelos nós.
fonte
Respostas:
Dê uma olhada nesta implementação JavaScript pura de um renderizador de tela .dot:
http://ushiroad.com/jsviz/
A biblioteca não está documentada - o autor definitivamente deve publicá-la e documentá-la mais (entrarei em contato com ele para sugerir que ele a publique no github, no mínimo).
Atualização : o código foi enviado ao github: https://github.com/gyuque/livizjs
Atualização (14/2/2013) : outro concorrente surgiu! Qualquer pessoa interessada no assunto deve definitivamente dar uma olhada de Viz.js página de exemplo e github repo .
Atualização (16/7/2020) : (sete anos depois) http://webgraphviz.com/ também é ótima! :-)
fonte
Depois de pesquisar muito e longe, finalmente encontrei a resposta.
A solução foi que alguém compilou Graphviz para Javascript usando llvm + emscripten. Aqui está o link:
http://viz-js.com/
A fonte pode ser encontrada em: https://github.com/mdaines/viz.js
E para simplesmente usar uma página da Web, use:
fonte
Depois de examinar todas as opções, achei o viz.js ( https://github.com/mdaines/viz.js/ ) baseado no jsviz e graphviz.js para realmente ter uma API utilizável em uma página da Web e exemplos suficientes para Compreendo.
fonte
Pode-se tentar converter graphviz para javascript, assim como foi feito no exemplo 'PDF reader': https://github.com/kripken/emscripten
fonte
Esta não é uma substituição pronta para o graphviz, mas o d3.js. é uma biblioteca que pode fazer vários layouts a partir de dados fornecidos e seria uma ótima plataforma para implementar o graphviz.
Aqui está um exemplo de layouts direcionados à força, que é uma forma do que o graphviz faz.
Aqui está um discurso sobre layouts com slides interativos incrivelmente impressionantes .
Para conhecer o projeto, os tutoriais são muito bons.
fonte
Aqui está uma compilação cruzada de Graphviz para Javascript feita usando Emscripten
https://github.com/bpartridge/graphviz.js
fonte