次のアニメーションの開始点として使用できるように、アニメーションの後に D3 オブジェクトのキャンバスの場所 (cx/cy) にアクセスして保存するにはどうすればよいですか?
次の入力トランジションがあります。
var enterTransition = enter.transition()
.duration(duration)
.delay(function(d, i) { return i * delay; })
.attr("cx", function(d, i) { return Math.random()*width; })
.attr("cy", function(d, i) { return Math.random()*height; });
その結果、ノードがどこにあるのか本当にわかりません。
ノードには子があり、結果として「クリック」イベントが発生する場合があります。ユーザーがノードをクリックすると、ノードの新しいバッチが親で開始され、そこからランダム化されます。ノード(「バブル」)を次のように定義します...
var bubbles = vis.insert("svg:g")
.attr("class", "enter")
.selectAll("g")
.data(d.children)
.enter().append("svg:circle")
.attr("stroke", "black")
.attr("fill", function(d, i) { return colors(i); })
.attr("cx", function(d, i) { return d.cx0; }) // for illustration purposes
.attr("cy", function(d, i) { return d.cy0; }) // for illustration purposes
.attr("r", function(d, i) { return rScaled(d.duration); })
.style("cursor", function(d) { return !d.children ? null : "pointer"; })
.on("click", down);
My d.cx0
andd.cy0
は、親ノードの cx/cy を表します。
アニメーションの後にこの情報を取得し、参照用に保持するにはどうすればよいですか?