2013-05-15 6 views
7

Używam układu sił do reprezentowania skierowanej, nieważonej sieci. Moja inspiracja pochodzi z poniższym przykładzie: http://bl.ocks.org/mbostock/1153292Układ sił zatrzymania na d3js i rozpoczęcie swobodnego przeciągania węzłów

enter image description here

Ponieważ moje dane są naprawdę bałagan, chciałbym zatrzymać układ i przenieść węzły, przeciągając je ręcznie. Chciałbym również, aby ruch węzła nie zmieniał pozycji innych. Konieczne jest, aby łącza były dłuższe, aby dotrzeć do węzła, który został przeniesiony.

Czy istnieje prosty sposób na zrobienie tego?

+0

Możesz wywołać 'force.stop()', aby zatrzymać symulację. –

+0

jest ok, ale czy? –

+0

Następnie ruch węzłów powinien się zatrzymać. –

Odpowiedz

0
function nameOfFunction() { 
    d3.selectAll(".classOfYourNodes").each(
     function(d) { 
      d.fixed = true; 
     } 
    ) 
} 

Sposób .each wywołuje anonimową funkcję, która w tym przypadku ustawia atrybut "Fixed" true dla każdego węzła w wyborze.

Edycja: Powyższe odnosi się do komentarza dotyczącego zatrzymania wszystkich węzłów i nie ma potrzeby przeprowadzania symulacji siły podczas przeciągania węzła, ponieważ wywołanie force.stop() ma miejsce.

Powiązane problemy