1

でアニメーション化するバラを1つだけ持つ方法はありますtransition()か? これまでのところ、このコードは ax,y 空間でバラを繰り返します。n 秒ごとに形を変える 1 つのバラが欲しいです。

 var rose = vis.selectAll("g")
    .data(d3.range(d * n).map(function(i) { return [1 + i % n, 1 + ~~(i / n)]; }))
    .enter().append("g")
    .attr("transform", function(d, i) {
      return "translate(" + [d[0] * dx, d[1] * dx] + ")";
    });

  rose.append("path")
    .attr("d", function(d) {
      var i = gcd.apply(null, d),
      p = Math.round(d[0] / i),
      q = Math.round(d[1] / i),
      k = p / q,
      period = (p & q & 1 ? 1 : 2) * Math.PI * q;
      return line(d3.range(0, period + Math.PI / 50, Math.PI / 50).map(function(theta) {
        var r = (dx - 5) * Math.cos(k * theta) / 2;
        return [r * Math.cos(theta), r * Math.sin(theta)];
      }));
    });
4

0 に答える 0