1
こんにちは、私はD3を初めて使っていて、パスであるバリアを持つd3 forceレイアウトを見つけることができません。私はこのようなことを考えている。この不規則な境界ではなく、ボックスのようなノードバリアはd3 forceレイアウトで可能ですか?
。それは可能ではない理由
https://bl.ocks.org/mbostock/1129492こんにちは、私はD3を初めて使っていて、パスであるバリアを持つd3 forceレイアウトを見つけることができません。私はこのようなことを考えている。この不規則な境界ではなく、ボックスのようなノードバリアはd3 forceレイアウトで可能ですか?
。それは可能ではない理由
https://bl.ocks.org/mbostock/1129492Iは、実施例で使用されるコードが表示されない:
function tick() {
node.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)); });
単にノード(CXおよびCY)の中心の最大値と最小値を設定します。ですから、作成したいエッジの形状を表す式を書くことができれば、その形状の中にノードを含めることができます。
svgの反対側の形を鏡映するのが難しいかもしれません。 1勾配しかし、明らかにテストされていないと、それは大規模な力が低下する可能性があります:私はそれが1と右側の対角線を設定すべきだと思う
function tick() {
node.attr("cx", function(d) { return function(d){
d.x = Math.max(radius, Math.min(d3.select(this).attr("cy")- radius, d.x)); }}
.attr("cy", function(d) { return d.y = Math.max(radius, Math.min(height - radius, d.y)))
}
:よう
何か。
関連(D3 V4):https://stackoverflow.com/questions/39928306/d3-js-force-layout-boundary-issue-v4 D3の特定のバージョンでこれを行う予定ですか? –
これは参考になるかもしれません:ポイントがポリゴンにあるかどうかを検出するhttps://stackoverflow.com/questions/13279165/how-to-find-if-point-is-inside-polygon-in-d3-js –
私はv4でそれをしようとしていて、おそらくノードの1つが力を無視し、特に配置され、負の電荷を放ち、他のノードを撃退する可能性があると考えていました。 – zippyferguson