2012-09-19 6 views
6

Vorrei aggiungere un comportamento a un layout di grafi diretto forzato in D3 in modo tale che una volta sceso, un nodo svg trascinato e trascinato rimanga al suo posto, non cambiando più posizione no importa cos'altro accade nel grafico. Ho letto alcune informazioni su questa API ma non riesco a trovare un modo per farlo funzionare.grafico forza d3: nodi appiccicosi

Il problema che sto cercando di risolvere è quello di consentire a un utente di "separare" un grafico di forza complesso.

risposta

11

Impostare la proprietà fixed del nodo su true su mousedown.

node.on("mousedown", function(d) { d.fixed = true; }); 

Ad esempio: http://bl.ocks.org/3750558

+0

perfetta, che lo ha fatto. Grazie mille! –

+0

Nell'esempio, una volta che il nodo è stato cliccato e trascinato, è rimasto permanentemente evidenziato e appiccicoso. È possibile fare nuovamente clic per rilasciarlo dalla sua "vischiosità"? – ericmjl

+0

Certo, è possibile impostare 'd.fixed = false' su dblclick, ad esempio. – mbostock