D3 で生成されたラジオ ボタンを使用して、FDG レイアウトのノードのサイズを (マウス クリックで) デフォルト サイズからスケーリングされた大きさに切り替えます。ノード クラスタ ダイアグラムの左上にラジオ ボタンがあります( http://nounz.if4it.com/Nouns/Applications/A__Application_1.NodeCluster.html ) 。
デフォルトの数値とスケーリングされた大きさの間でノードの円を切り替えるコードは次のようになります...
var densityControlClick = function() {
var thisObject = d3.select(this);
var typeValue = thisObject.attr("density_type");
var oppositeTypeValue = (function() {
if(typeValue=="On") {
return "Off";
} else {
return "On";
}
})();
var densityBulletSelector = "." + "densityControlBullet-" + typeValue;
var selectedBullet = d3.selectAll(densityBulletSelector);
selectedBullet.style("fill", "Black")
var oppositeDensityBulletSelector = "." + "densityControlBullet-" + oppositeTypeValue;
var selectedOppositeBullet = d3.selectAll(oppositeDensityBulletSelector);
selectedOppositeBullet.style("fill", "White")
if(typeValue=="On") {
var selectedNodeCircles = d3.selectAll("#NODE");
selectedNodeCircles.attr("r", function(d){ return rRange(d.rSize); });
}
else {
var selectedNodeCircles = d3.selectAll("#NODE");
selectedNodeCircles.attr("r", function(d) { if (d.id==focalNodeID) { return centerNodeSize; } else { return defaultNodeSize; } } );
}
}
すべて正常に動作しますが、円の半径の遷移は瞬間的です。D3 のダイナミックな性質を誇示するために、トランジションを少し遅くしたいと思います。
上記のコードを変更して、円のサイズ/半径の遷移を遅くする方法を知っていますか? そして、コードの背後にある理論を理解できるように、英語で何が起こっているのか説明していただけますか? (注: API を読み取ろうとしましたが、トランジションを適用するのは簡単ではありません。)
ご協力いただきありがとうございます。それは有り難いです。