私はd3.jsを使用して作成した強制レイアウトを持っていますv2でズームを実装すると、d3.js v3で強制グラフが破損するのはなぜですか?
ドラッグ可能なフォースレイアウトの通常の機能とズーム機能の両方を望みます。
私は基本的にこの(http://jsfiddle.net/nrabinowitz/QMKm3/)コードからズームコードをコピー/ペーストしました。これは、この(http://bl.ocks.org/mbostock/3680957)の例でMike Bostockが使用するズームと同じ方法です。ここで
は私のコードです:http://jsfiddle.net/kM4Hs/6/
はっきり鉱山で見られるように、ズームが正常に動作しますが、私は力のレイアウト内の単一ノードを選択し、それらを周りにドラッグすることができません。
私は、他の両方の著者が私が使用している新しいd3.v3.jsではなくd3.v2.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>
つの質問:なぜ何も、それを修正する場合、私は、何を行うことができ、より重要なのは、v2はないときに力のレイアウトを壊し、およびv3のでしょうか?
ありがとうございます!
私は、フォースレイアウトでこれを行うと、レイアウトが他のノード/エッジの一部を再調整することによってノードの動きに反応する自然な方法をオーバーライドするように見えることがわかりました。 ドラッグ方法でもすべてのリンクを更新することでこれを半分修正したので、修正するのは簡単でした。私が理解できない部分は、力の機能を固定することです。 draggedの最後にforce.resume()を実行しようとしましたが、そのforceの機能を再開している間に、ドラッグしたノードの位置もリセットされます(ドラッグの最後にd.fixed = trueを設定しています私はドラッグされたノードを修正したい)。 –
[sticky force layout example](http://bl.ocks.org/mbostock/3750558/5093e88c0462173a3d7b5859d7db75fbf5a7d8b8)と[force.drag](https://github.com/mbostock/d3)のドキュメントをご覧ください。/wiki/Force-Layout#wiki-drag)をクリックします。私はちょうどそれらを更新した。 – mbostock
@mbstockありがとうございます。スティッキーフォースのレイアウトの例は私の時間トンを保存! – Saad