私はD3を学ぶ過程にあり、私は解決できないような問題に遭遇しました。D3.jsバウンディングボックスの問題 - ティック機能を強制的に
私はrvecianaのCircles bouncing inside a rectangle exampleのコードを使って作業していますが、これはそのぎりぎりの部分を取り除いています。
Iからダニ機能で円の属性を交換するとき、私は、しかし、容器の底に沈んにノード/円を取得しようとしていますし、箱の内側にバインドさ:
.attr("cx", function(d) {return d.x;})
.attr("cy", function(d) {return d.y;});
に:
.attr("cx", function(d) { return d.x = Math.max(radius, Math.min(width - radius, d.x)); });
.attr("cy", function(d) { return d.y = Math.max(radius, Math.min(height - radius, d.y)); });
ノード/円は、容器内の0,0なく、ランダムに配置され、相互作用し又は移動させることができません。
私のコードはhttps://jsfiddle.net/Glitttttch/p93qyh99/3/です.2行のコメントアウトがあります。
function tick(e) {
force.alpha(0.1)
circle
.each(gravity(e.alpha))
.each(collide(.5))
.attr("cx", function(d) {return d.x;})
.attr("cy", function(d) {return d.y;});
//.attr("cx", function(d) { return d.x = Math.max(radius, Math.min(width - radius, d.x)); });
//.attr("cy", function(d) { return d.y = Math.max(radius, Math.min(height - radius, d.y)); });
}
正しくこれらの行を統合する方法上の任意の提案は非常に非常に高く評価されます。
ます(http://bl.ocks .org/mbostock/1129492)、バウンディングボックスを設定するには、割り当てと定義が必要です。 –