Javascript D3转换:旋转和平移

Javascript D3转换:旋转和平移,javascript,d3.js,Javascript,D3.js,我是d3的新手,到目前为止我很喜欢它,但我试图把一些东西放在一起,却不知道如何纠正某些行为 下面是我尝试做的一个演示: [已删除]死链接 第一个行为是,每个仪表的“起始”点始终默认为黑色,并且颜色从此处过渡 第二个行为是旋转之间的过渡“反弹”。这是因为它不是围绕(150150)旋转,而是围绕(0,0)旋转,这使得它在转换中“反弹”,但我不知道如何解决这个问题 有人能帮我看看哪里出了问题吗 谢谢。这两种行为都是每次重画时重置仪表当前状态的结果。试着把线取出来: pointer .attr("t

我是d3的新手,到目前为止我很喜欢它,但我试图把一些东西放在一起,却不知道如何纠正某些行为

下面是我尝试做的一个演示:

[已删除]死链接

第一个行为是,每个仪表的“起始”点始终默认为黑色,并且颜色从此处过渡

第二个行为是旋转之间的过渡“反弹”。这是因为它不是围绕(150150)旋转,而是围绕(0,0)旋转,这使得它在转换中“反弹”,但我不知道如何解决这个问题

有人能帮我看看哪里出了问题吗


谢谢。

这两种行为都是每次重画时重置仪表当前状态的结果。试着把线取出来:

pointer
  .attr("transform", null)
  .style("fill", null);

变换将仪表返回原点,填充将仪表返回黑色。

此函数将修复反弹。我需要一个插值函数来消除反弹。 a是优先位置

pointer.transition()
        .style("fill", this.valueToColor(value))
        .duration(1000)
        .ease("bounce")
        .attrTween("transform", tween);

    function tween(d, i, a) {
      return d3.interpolateString(a, "rotate(" + rotateAngle + ", 150, 150)");
    }

这解决了第一个问题。谢谢但它仍然会反弹,我更新了网站以显示当前代码。有什么想法吗?我认为这与旋转和平移有关。听起来你明白了。。。恭喜。