gpt4 book ai didi

javascript - 我可以补间 D3 弧的 endAngle,但不是它的 startAngle。我究竟做错了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:01:32 25 4
gpt4 key购买 nike

我只是在玩这个演示并自己重新创建它:http://bl.ocks.org/mbostock/5100636

我可以定义一个新的 endAngle,它会很好地设置动画,但现在我也尝试设置 startAngle 的动画。我只是无法让它工作。

function animateArc(newStart, newEnd) {

myArc.transition().duration(750).call(arcTween, newStart, newEnd);

function arcTween(transition, newStart, newEnd) {
transition.attrTween("d", function(d) {
var interpolateStart = d3.interpolate(d.startAngle, startAngle);
var interpolateEnd = d3.interpolate(d.endAngle, endAngle);
return function(t) {
d.startAngle = interpolateStart(t);
d.endAngle = interpolateEnd(t);
return arc(d);
};
});
}
}

我没有收到任何类型的错误,并且 endAngle 仍然具有动画效果,但我添加的 startAngle 代码实际上只是……被忽略了。

补间圆弧的 startAngle 的正确方法是什么?

最佳答案

有几处需要修改。在原始脚本中,arc 函数中的起始值固定为 0。然后,由于 arc 不提供起始值,因此它是通过数据提供的。

var arc = d3.svg.arc()
.innerRadius(90)
.outerRadius(150);

var background = svg.append("path")
.datum({
endAngle: τ,
startAngle: 0
})

var foreground = svg.append("path")
.datum({
endAngle: .127 * τ,
startAngle: -.127 * τ
})

等等:http://jsfiddle.net/breizo/h74f180b/

关于javascript - 我可以补间 D3 弧的 endAngle,但不是它的 startAngle。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com