Ho un layout di forza che ho creato utilizzando d3.jsPerché d3.js v3 infrange il grafico della forza quando si implementa lo zoom quando v2 no?
Mi piacerebbe avere sia la normale funzionalità di un layout forza trascinabile, nonché la possibilità di zoom.
Ho praticamente copiato/incollato il codice dello zoom da questo codice (http://jsfiddle.net/nrabinowitz/QMKm3/). Questo è lo stesso modo dello zoom che Mike Bostock utilizza in questo esempio (http://bl.ocks.org/mbostock/3680957).
Ecco il mio codice: http://jsfiddle.net/kM4Hs/6/
Come si vede chiaramente nel mio, lo zoom funziona bene, ma sono in grado di selezionare singoli nodi nel layout vigore e trascinarli in giro.
Ho trovato il culpret per il fatto che entrambi gli altri autori usano d3.v2.js piuttosto che il più nuovo d3.v3.js che sto usando. Quando cambio la mia importazione in v2 funziona perfettamente. Tuttavia, nell'interesse del progresso e solo di un generale buon senso, mi piacerebbe usare la v3 se possibile.
<script type='text/javascript' src='http://d3js.org/d3.v3.min.js'></script>
versus
<script type='text/javascript' src='http://d3js.org/d3.v2.min.js'></script>
due domande: perché fa v3 rompere il layout forza quando v2 non, e, cosa più importante, quello che posso fare, se non altro, per risolvere il problema?
Grazie in anticipo!
Mi sono reso conto che eseguire questa operazione su un layout di forza sembra ignorare il modo naturale in cui il layout risponde al movimento di un nodo riaggiustando alcuni degli altri nodi/spigoli. Ho risolto questo problema facendo sì che il metodo di trascinamento aggiornasse anche tutti i collegamenti, quindi era abbastanza facile da risolvere. La parte che non riesco a capire è quella di correggere la funzionalità della forza. Ho provato a fare un force.resume() alla fine del dragended, ma mentre riprendeva la funzionalità force, resettava anche le posizioni di tutti i nodi che avevo trascinato (sto impostando d.fixed = true alla fine di un trascinamento, poiché Voglio che i nodi trascinati siano corretti). –
Dai uno sguardo all'esempio di layout [forza appiccicosa] (http://bl.ocks.org/mbostock/3750558/5093e88c0462173a3d7b5859d7db75fbf5a7d8b8) e alla documentazione di [force.drag] (https://github.com/mbostock/d3/wiki/Forza-layout # wiki-trascinamento). Li ho appena aggiornati. – mbostock
@mbstock grazie. esempio di layout di forza appiccicosa mi ha salvato un sacco di tempo! – Saad