2012-10-16 17 views
7

Byłbym zainteresowany, aby dowiedzieć się dokładnie, jakie algorytmy D3 używa do osiągnięcia funkcji wykresu ukierunkowanego na siłę w bibliotece. Po przeczytaniu Kobourov's summary historii wykresów kierujących siłą, nie byłem pewien co to jest dokładny algorytm lub metoda (kombinacja algorytmów/heurystyki) użyta w bibliotece.Jakie algorytmy używa D3.js do wykresu ukierunkowanego na siłę?

D3 API reference mówi, że algorytm Barnesa-Huta jest używany do obliczania ładunków działających na ciałach, operacji O (N * log (N)). Artykuł Kobourova wspomina o algorytmie Quigley-Eadesa, a algorytm Hu to wielopoziomowe algorytmy wykorzystujące Barnes-Hut. Czy jeden z nich jest w jakiś sposób wykorzystany w D3?

Interfejs API dla wiki mówi, że integracja Verlet służy do pozycjonowania cząstek. The source code wymienia algorytm Gaussa-Seidela, który z kolei jest wymieniony zarówno w Hu's algorithm i Dwyer's graph layout paper. Domyślam się, że na pytanie, na które szukam odpowiedzi, kryje się algorytm "integracyjny" D3; Artykuł Kobourova zawiera listę kilku, a funkcje ukierunkowane na siłę D3 nie wydają się pasować do żadnego z nich.

+1

Teraz to pytanie! +1 – Ridcully

+0

Lepiej email to pytanie do Mike Bostock ... – akuhn

+0

@akuhn: Nie widziałem email twórcy na stronie D3. Nie byłoby właściwym, aby wysyłać takie pytania bezpośrednio do niego, wtedy wszyscy w społeczności po prostu to robili. Widziałem Mike'a odpowiadającego na pytania tutaj na SO, więc myślę, że to jest odpowiednie forum do zadawania pytań. – amergin

Odpowiedz

3

W oryginale d3 paper, Mike Bostock & al. napisał, że realizacja Dwyer jest używany dla układu wykresu siła:

Siła układ łączy symulację fizyczną i iteracyjny ograniczenie relaks [7] dla stabilnego układu wykresu.

[7] T. Dwyer. Skalowalny, wszechstronny i prosty, ograniczony układ wykresów. W EuroVis 2009.

uzyskać więcej informacji, Dwyer's paper opisuje w szczegółach całego algorytmu.

Powiązane problemy