2013-05-15 10 views
7

Sto usando il layout della forza per rappresentare una rete non pesata diretta. La mia ispirazione viene dal seguente esempio: http://bl.ocks.org/mbostock/1153292Arresta il layout forzato su d3js e avvia i nodi di trascinamento liberi

enter image description here

Poiché i miei propri dati sono davvero un disastro, mi piacerebbe fermare il layout e spostare i nodi trascinando manualmente. Mi piacerebbe anche che il movimento di un nodo non cambi la posizione degli altri. Ed è necessario che i collegamenti diventino più lunghi, per raggiungere il nodo che è stato spostato.

C'è un modo semplice per farlo?

+0

È possibile chiamare 'force.stop()' per interrompere la simulazione. –

+0

va bene, ma poi? –

+0

Quindi il movimento dei nodi dovrebbe fermarsi. –

risposta

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

Il metodo .each chiama la funzione anonima, che in questo caso imposta l'attributo "fisso" true per ogni nodo all'interno della selezione.

Modifica: Quanto sopra riguarda il tuo commento sulla volontà di interrompere tutti i nodi e non avere la simulazione della forza continua quando si trascina un nodo, come richiama force.stop().

Problemi correlati