Adakah yang menyadari implementasi Javascript murni dari diagram alur arah yang dapat dihasilkan oleh GraphViz? Saya TIDAK tertarik dengan output visual yang cantik, tetapi perhitungan untuk mengetahui kedalaman maksimum dari setiap node, bersama dengan tata letak garis bezier yang dioptimalkan untuk meminimalkan jumlah sisi berpotongan saat Anda berurusan dengan grafik daripada pohon informasi. Saya ingin menjalankan kode ini di dalam browser; Saya sadar bahwa saya dapat dengan mudah menanamkan Graphviz ke server Node saya sebagai ekstensi, atau bahkan popen()
dan mengalirkan informasi grafik dalam .dot
format.
Untuk referensi, berikut ini adalah output GraphViz yang khas. Perhatikan bagaimana elemen ditumpuk dan diberi jarak untuk memungkinkan garis penghubung berjalan di antara node, tanpa berpotongan (sangat sering) atau melewati node.
sumber
Jawaban:
Lihatlah implementasi JavaScript murni dari penyaji kanvas .dot ini:
http://ushiroad.com/jsviz/
Perpustakaan tidak didokumentasikan - penulis pasti harus mempublikasikan dan mendokumentasikannya lebih banyak (saya akan menghubunginya untuk menyarankan agar ia meletakkannya di github, setidaknya).
Pembaruan : kode telah didorong ke github: https://github.com/gyuque/livizjs
Pembaruan (14/2/2013) : pesaing lain telah muncul! siapa pun yang tertarik pada subjek pasti harus melihat halaman contoh Viz.js dan github repo .
Pembaruan (7/16/2020) : (tujuh tahun kemudian) http://webgraphviz.com/ juga bagus! :-)
sumber
Setelah mencari jauh dan rendah akhirnya saya menemukan jawabannya.
Solusinya adalah seseorang melakukan cross compile Graphviz ke Javascript menggunakan llvm + emscripten. Ini tautannya:
http://viz-js.com/
Sumbernya dapat ditemukan di: https://github.com/mdaines/viz.js
Dan untuk cukup menggunakan laman web:
sumber
Setelah melihat semua opsi, saya menemukan viz.js ( https://github.com/mdaines/viz.js/ ) berdasarkan dari jsviz dan graphviz.js untuk benar-benar memiliki API yang dapat digunakan dari halaman web, dan cukup banyak contoh untuk memahami.
sumber
Seseorang dapat mencoba mengubah graphviz menjadi javascript, seperti yang dilakukan untuk contoh 'pembaca PDF': https://github.com/kripken/emscripten
sumber
Ini bukan pengganti graphviz yang sudah jadi tapi d3.js adalah perpustakaan yang dapat melakukan berbagai tata letak dari data yang diberikan dan akan menjadi platform yang bagus untuk mengimplementasikan graphviz.
Berikut adalah contoh tata letak yang diarahkan secara paksa yang merupakan salah satu bentuk dari apa yang dilakukan graphviz.
Berikut ini adalah pidato tentang tata letak dengan slide interaktif luar biasa mengagumkan .
Untuk mengetahui proyeknya, tutorialnya sangat bagus.
sumber
Berikut ini adalah kompilasi silang Graphviz ke Javascript yang dilakukan menggunakan Emscripten
https://github.com/bpartridge/graphviz.js
sumber