我尝试使用D3为饼图设置动画,意味着将起始角度设置为0到某个X角度。我有以下代码:
var path = svg.append("g").selectAll("path").data(pie([0, 0]))
.enter()
.append("path")
.attr("fill", function(d, i) { return "#314965" })
.attr("d", arc.endAngle(colorCounter == 0 ? 2 * Math.PI : 0.5))
path = d3.select(path[0][0]);
setInterval(function() {
path.transition()
.duration(750)
.call(arcTween, Math.random() * 0.314);
}, 1500);
//Animation tween function
function arcTween(transition, newAngle) {
transition.attrTween("d", function(d) {
var interpolate = d3.interpolate(d.endAngle, newAngle);
return function(t) {
d.endAngle = interpolate(t);
return arc(d);
};
});
}
这样可以很好地制作动画,但是,动画的弧线与原始弧线没有相同的内半径或外半径。我怀疑问题是当我返回arc(d)时,半径被重置为默认值。如果是这种情况,我不确定如何设置它们。请帮忙!谢谢。