Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js饼图反向动画_Javascript_Animation_D3.js_Reverse - Fatal编程技术网

Javascript D3.js饼图反向动画

Javascript D3.js饼图反向动画,javascript,animation,d3.js,reverse,Javascript,Animation,D3.js,Reverse,正如标题所说。如何反转饼图中的动画路径(D3.js)。默认情况下,饼图以顺时针方向渲染动画。我该如何反转它 参见图片示例 JS在此: var pie = d3.layout.pie() .sort(null) .startAngle(1 * Math.PI) .endAngle(3 * Math.PI) .value(function (d) { return d.percentage; }); g.a

正如标题所说。如何反转饼图中的动画路径(D3.js)。默认情况下,饼图以顺时针方向渲染动画。我该如何反转它

参见图片示例

JS在此:

    var pie = d3.layout.pie()
        .sort(null)
        .startAngle(1 * Math.PI)
        .endAngle(3 * Math.PI)
        .value(function (d) { return d.percentage; });

        g.append("path")
            .attr("d", arc)
            .style("fill", function (d) { return d.data.color; })
            .attr({
                "fill": function (d) {
                    return d.data.color;
                }
            })
            .transition()
            .duration(1000)
            .attrTween("d", function (d) {
                var i = d3.interpolate(d.startAngle, d.endAngle);
                return function (t) {
                    d.endAngle = i(t);
                    return arc(d);
                }
            });

只需将
endAngle
startAngle
交换即可:

.transition()
.duration(1000)
.attrTween("d", function (d) {
    var i = d3.interpolate(d.endAngle, d.startAngle);
    return function (t) {
        d.startAngle = i(t);
        return arc(d);
    }
});
检查代码段:

var数据集={
苹果:[534528791997,24374045],
};
可变宽度=460,
高度=300,
半径=数学最小值(宽度、高度)/2;
var color=d3.scale.category20();
var pie=d3.layout.pie()
.sort(空);
var arc=d3.svg.arc()
.内半径(半径-100)
.外层(半径-50);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.附加(“g”)
.attr(“变换”、“平移”(+width/2+)、“+height/2+”);
var path=svg.selectAll(“路径”)
.data(pie(dataset.apples))
.enter().append(“路径”)
.attr(“fill”,函数(d,i){返回颜色(i);})
.attr(“d”,弧)
.transition()
.持续时间(1000)
.attrTween(“d”,函数(d){
var i=d3.插值(d.端角,d.星形);
返回函数(t){
d、 startAngle=i(t);
返回弧(d);
}
});