3

d3.jsで強制レイアウトのサイズを変更することは可能ですか? たとえば、次のように定義されたレイアウトがあります

var force = d3.layout.force()
.nodes(documents.nodes)
.linkDistance(0)
.friction(.2)
.size([width, height]);

force.start();

プロジェクトの後半でサイズを変更したいと思います。これは可能ですか?

4

2 に答える 2

3

ドキュメントによると、フォース レイアウトの.size()パラメーターは重心とノードの初期分布にのみ影響し、使用可能なスペースには影響しません。tick関数などで、自分で制約を強制する必要があります。

force.on("tick", function() {
    node.attr("cx", function(d) { return Math.min(maxX, Math.max(minX, d.x)); })
        .attr("cy", function(d) { return Math.min(maxY, Math.max(minY, d.y)); });
}
于 2013-10-11T08:37:44.537 に答える