フォースレイアウトの最初のアニメーションに影響を与えることについて多くを読んだことがありますが、まだ理解していないのでしょうか?d3.jsフォースレイアウトの初期アニメーションを制御する
this exampleを効果的に「停止」する方法を見つけました(実装可能)。
しかし、私の質問は、それを制御することができるかどうかです(つまり、「強制停止」までにどれくらい時間がかかりますか?)。 アルファを変更するためのパラメータであるが、それは(私は任意の顕著な違いのないゼロと正の値、負の値を試してみました)違いをしないと思われるドキュメントから
。 yrscc私がやろうとしています何のfiddle:ここ
は私がやろうとしています何のjsdiddleです。
var force = d3.layout.force()
.nodes(d3.values(datax.nodes))
.links(datax.links)
.size([xViewPortArea.Width, xViewPortArea.Height])
.linkDistance(xGraphParameters.xLinkDistance)
.charge(xGraphParameters.xCharge)
.on("tick", tick)
.alpha(-5) // HERE
.start();
私の質問:
- アルファの値が実際に反復回数に影響を与えるのでしょうか? (値が正でなく、強制レイアウトが実行されている場合、このメソッドは次のティックで強制レイアウトを停止して「終了」を送出するin the documentation
- この中にはthis postingという機能が提案されています。。明らかにすることができますしかし、一つは、それを呼び出すことになっている場合、私は理解していない@JohnS
PSによって:別のクールなオプションは、画面上の画像を持っているし、その後、バックグラウンドで最適なレイアウトを計算することであるlike hereしかし、私はそれを実装しようとしました
が優れています。ありがとう。私はちょうど私のファイルの最後にコードをコピーし、それは完全に動作します。 P.S:私もフリクションで遊んでいましたが、それはアニメーションを遅くしますが、ネットワークの奇妙な形になります。 – user1043144
これは、少し単純化することができますwhile(force.alpha()){force.tick(); } '、またはwhile(force.alpha()> 1e-5){force.tick();} } 'レイアウトを計算しないレベルを制御したい場合 –