一部のエンティティの値がゼロのパック レイアウトがあります。それらのデフォルトの半径を設定する方法を見つけようとしています。ドキュメントによると、私はこのようなものを書くことができることを望んでいました
pack.radius(function(r){
return r==0 ? MIN_RADIUS : oldRadiusFunction(r);
});
しかし、「oldRadiusFunction」にアクセスする方法を特定することにこれまで成功していません。
これを解決するのに最も近いのは、次のことです。
pack.radius(function(r){
return r== 0 ? MIN_RADIUS : p.radius(null)(r);
});
var p = this.pack;
... 関数内から this.pack にアクセスするため。これは最初はうまくいくように見えますが、グラフの更新を開始すると奇妙な結果が得られ始めます。
とにかく、どんな助けでも大歓迎です、あなたの注意と入力に感謝します!
編集:ドキュメントの内容は次のとおりです
pack.radius([半径])
radius が指定されている場合、各ノードの半径を計算するための radius 関数を設定します。radius が null の場合、デフォルトでは、半径はノード値から自動的に決定され、レイアウト サイズに合わせてスケーリングされます。radius が指定されていない場合は、現在の radius 関数を返します。デフォルトは null です。半径は、均一な円サイズの定数として指定することもできます。
私の目標 (少しナイーブかもしれません) は、引数として 0 を渡したときに MIN_RADIUS を返す関数を渡すか、他の値に対してデフォルトで返されるものを返すことです。