2012-09-04 13 views
10

Szukam biblioteki JavaScript/silnika, który może wykonywać układy graficzne. (A kiedy mówię o układach, mam na myśli logiczne pozycjonowanie wierzchołków.) Grafy, z którymi pracuję, to wszystkie drzewa m-ary. Wartość M zwykle nie przekracza 5 lub 6, ale w niektórych przypadkach może być większa.Silnik układu graficznego JavaScriptu

Mam coś, czego teraz używam, program węzła Graphviz i działa idealnie. Problem polega na tym, że podczas uruchamiania aplikacji internetowej muszę wysyłać żądanie do serwera za każdym razem, gdy chcę mieć układ. Najlepiej, chciałbym coś napisanego w JavaScript, które można szybko uruchomić po stronie klienta. Wszystko, co musi zrobić, to podać informacje o układzie (względne pozycjonowanie i inne). Nie potrzebuję go do rysowania na płótnie lub używania SVG lub czegokolwiek, wszystko, czym jestem zainteresowany, to układ.

Używanie biblioteki jak jQuery lub RaphaelJS jest w porządku przeze mnie. Będę z nim pracować. Po prostu szukam czegoś, co przyspieszy sprawę.

Też rozważałbym napisanie własnego, gdybym mógł znaleźć ładny opis algorytmu do układania. Ale naprawdę nie chcę spędzać zbyt wiele czasu. Mam coś, co działa teraz, więc zdobycie go po stronie klienta to tylko bonus, a nie konieczność.

Odpowiedz

8

Spójrz na D3 (dane-Driven Documents)

http://d3js.org/

Mają piękne układy wykresu.

+0

Zdecydowanie bardzo dobry wybór. Grałem z nim trochę i jestem zdumiony. Prawdopodobnie to właśnie wykorzystam, ale poczekam trochę, by sprawdzić, czy ktoś inny ma sugestię. – GJK

2

http://sigmajs.org/ to wyspecjalizowana biblioteka js do wizualizacji wykresów. Używa Canvas zamiast SVG.

+0

Problem z sigma.js polega na tym, że musisz sam układać układy ... – echox

+0

Wcale nie, układ ForceAtlas2 jest dostępny i możesz kodować własne układy. Zrobiłem to dla kilku układów. Prawdziwym problemem jest uruchomienie układu w przeglądarce internetowej, który jest znacznie wolniejszy niż używanie języka skompilowanego. – Seb

9

Sprawdź dagre https://github.com/cpettitt/dagre, teraz używa D3 i wykonuje układ Graphviz (Sugiyama).

+0

Uwielbiam to, szukałem biblioteki JavaScript, która ma układ ortogonalny i jest to pierwsza, która jest bliska mar k;) Dzięki za udostępnienie! –

2

W komercyjnym scenariuszu warto zapoznać się z biblioteką yFiles for HTML. Mimo że posiada również własne możliwości wizualizacji i edycji, układy mogą być również używane jako samodzielne iw chwili pisania tego są najprawdopodobniej najbardziej elastyczne i złożone algorytmy układu, które znajdziesz, jeśli szukasz czystych bibliotek JavaScript. Oczywiście istnieją dziś dostępne techniki, które zasadniczo skompilują dowolną bibliotekę (np. Bibliotekę GraphViz) do Javascript "blobs", ale nie zapewniają prawdziwego API, są bardziej podobne do aplikacji konsolowych w przeglądarce.

W Internecie dostępnych jest wiele dostępnych demos, które pokazują, co można zrobić z układami w yFiles. Implementacja zapewnia zaawansowane i konfigurowalne wersje algorytmów ukierunkowanych na siłę, hierarchicznych (styl Sugiyama), ortogonalnych, drzewiastych, kołowych i czystych algorytmów trasowania krawędziowego. This overview pokazuje różne dostępne moduły i można ich używać niezależnie od części przeglądarki i edytora.

Pełne ujawnienie: Pracuję dla firmy, która tworzy yFiles, ale na SO nie reprezentuję mojego pracodawcy.