У меня есть компоновка силы, которую я создал с помощью d3.jsПочему d3.js v3 разбивает мой график силы при реализации масштабирования, когда v2 не работает?
Я хотел бы иметь как нормальную функциональность перетаскиваемого силового макета, так и возможность масштабирования.
У меня в основном скопирован/вставлен код масштабирования из этого кода (http://jsfiddle.net/nrabinowitz/QMKm3/). Это тот же самый способ масштабирования, который использует Майк Босток в этом примере (http://bl.ocks.org/mbostock/3680957).
Вот мой код: http://jsfiddle.net/kM4Hs/6/
Как можно ясно видеть в шахтах, зумирование работает отлично, но я не могу выбрать отдельные узлы в макете силы и перетащить их вокруг.
Я нашел, что причиной этого является тот факт, что оба других автора используют d3.v2.js, а не новый d3.v3.js, который я использую. Когда я меняю свой импорт на v2, он отлично работает. Однако, в интересах прогресса и просто всеобщей доброжелательности, я хотел бы использовать v3, если это возможно.
<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>
Два вопроса: почему v3 разорвать макет силы, когда v2 нет, и, что более важно, что я могу сделать, если что-нибудь, чтобы исправить это?
Заранее благодарен!
Я понял, что выполнение этого на макете силы, по-видимому, отменяет естественный способ компоновки реагирует на перемещение узла путем перенастройки некоторых других узлов/ребер. Я половину исправил это, имея метод перетаскивания, также обновил все ссылки, так что было достаточно легко исправить. Часть, которую я не могу понять, - это фиксация силовой функциональности. Я попытался сделать force.resume() в конце перетаскивания, но в то время как эта возобновленная сила функциональности, она также сбросила позиции всех узлов, которые я перетащил (я устанавливаю d.fixed = true в конце перетаскивания, поскольку Я хочу, чтобы перетаскиваемые узлы были исправлены). –
Взгляните на пример [липкого силового макета] (http://bl.ocks.org/mbostock/3750558/5093e88c0462173a3d7b5859d7db75fbf5a7d8b8) и документацию для [force.drag] (https://github.com/mbostock/d3/вики/Force-Layout # вики-перетаскивание). Я просто обновил их. – mbostock
@mbstock спасибо. пример применения липкой силы спас меня! – Saad