web-dev-qa-db-ja.com

d3.jsの円が重ならないようにする

このbl.ock http://bl.ocks.org/301259 を見ると、パリで地理参照されているポイントが多く、小さなポイントの上に大きな円があることがわかります。

enter image description here

http://vallandingham.me/vis/gates/ のようなものを取得して、円がその境界線によって密接に追加されるようにします。

enter image description here

申し訳ありませんが、私はこのコードで答えを見つけることができませんでした。

それを取得する簡単な修正はありますか?異なる負の電荷力を試して、円のサイズが変化した場合に問題を引き起こしました(パリのすべての円が小さくなった場合、互いに離れすぎます)?

21
user1249791

オーバーラップを防ぐことが目的の場合、 衝突の検出 は、その制約を満たすためのより直接的な方法です。これにより、反発力よりも正確な結果が得られます。次に別の例を示します。

この2つはしばしば一緒に使用されますが、これを達成するために強制レイアウトは必要ありません。ノードを一定回数反復して、初期化時の衝突を解決できます。

43
mbostock