2012-06-05 2 views
22

Esempio su un grafico diretto forza può essere trovato qui: http://bl.ocks.org/950642D3 forza grafo orientato con supporto trascinamento per rendere la posizione nodo selezionato fissato cadute

Come posso aggiungere facilmente il supporto per trascinamento? Dovrebbe impostare il nodo su fisso con la posizione corrente in cui è stato rilasciato. E 'importante che resto dei nodi utilizza ancora il 'modo diretto la forza' per posizionare resto dei nodi nel grafico automaticamente

https://github.com/mbostock/d3/wiki/Force-Layout

Ho giocato un po' intorno, senza successo, e chiedendo se qualcuno è in grado di darmi un rapido esempio su come aggiungere tale supporto come spiegato sopra.

+0

Si prega di inviare ciò che avete finora – Wex

+0

Se sarebbe quasi vicino a qualcosa funziona affatto, sarei felice di post-it. Ma è meglio usare l'esempio dato come base, poiché è il più vicino che ho ottenuto finora, alias nulla. Ad ogni modo, ho riflettuto sull'intero problema di ieri e ho lavorato su alcune idee. Pubblicherò aggiornamenti quando avrò dei progressi – norrs

+0

Idea: modifica la funzione force.drag originale per non giocare con lo stato fisso su tutto mouseover/mouseout – norrs

risposta

28

Finalmente ha funzionato dopo aver capito che non è l'ideale per combattere con due ascoltatori "trascinati" (il tuo e force.drag) attaccati ai nodi!

Molto meglio avere il proprio "drag" -listener e call tick() manualmente, che è la caratteristica chiave di ottenere il grafico della forza per posizionare i nodi per voi su ogni nuova posizione del nodo sul nodo che si trascina.

esempio di lavoro: http://bl.ocks.org/2883411

+0

bel lavoro :) dovresti aggiungere questo al wiki d3 – paxRoman

+0

Buon piano, I Lo farò :-) – norrs

+0

Non viene visualizzato correttamente in FF. Il nodo da trascinare non viene visualizzato. In Chrome, l'immagine sul nodo è per un collegamento di immagine interrotto. – Spaceghost