0

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

这是我正在尝试做的演示:

[已删除] 死链接

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

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

有人可以帮我看看我哪里出错了吗?

谢谢。

4

2 回答 2

1

这两种行为都是您在每次重绘时重置仪表当前状态的结果。尝试取出线条:

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

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

于 2012-11-12T19:17:18.683 回答
0

此功能将修复弹跳。我需要一个插值函数来消除弹跳。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)");
    }
于 2012-11-12T20:50:15.657 回答