最後に、ウェブ上で適切なサイトを見つければ、それは非常に簡単です。
http://bl.ocks.org/1129492はまさに私が望んでいたことを行います - オブジェクトは svg から抜け出すことはできません。そのため、ノードの位置を更新するときにいくつかの制約を追加しました。私の「ティック」機能は次のようになりました
node.attr("cx", function(d) { return d.x = Math.max(15, Math.min(width - 15, d.x)); })
.attr("cy", function(d) { return d.y = Math.max(15, Math.min(height - 15, d.y)); });
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
これは、何か重要なことが発生する可能性があるときに呼び出されます。「ティック」とは、D3.js の奥深くに構築されたものなので、私に聞かないでください。:)
指定されたコードの最初の 2 行と最後の行は、座標が箱から出ていないことを確認します。
これが誰かが私よりも速く仕事をするのに役立つことを願っています;)
楽しい時間を過ごしてください、デイブ