Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 23rd, 2012  |  syntax: None  |  size: 2.56 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var rw = [40, 40]
  2. var rh = [40, 40]
  3. var x0 = 15;
  4. var y0 = 10;
  5. var color = ["#ff0000", "#0000ff"]
  6.  
  7. var nr = 6;
  8. var nc = 6;
  9.  
  10. var sw = parseInt(d3.select("svg").style("width"))
  11. var sh = parseInt(d3.select("svg").style("height"))
  12. var xoffset = sw / nr;
  13. var yoffset = sh / nc;
  14.  
  15. delta.duration = 1500;
  16. //delta.ease = d3.ease("linear")
  17. //delta.ease = d3.ease("bounce")
  18. delta.ease = d3.ease("cubic")
  19.  
  20. delta.clone_opacity = 0.34145
  21. var corners = 37;
  22. var matrix = _.map(d3.range(nr), function(j){  return d3.range(nc); })
  23. delta.append = function(g) {
  24.     g.append("g").attr("class", "shapes")
  25.     var shape_row = g.select("g.shapes").selectAll("g.shape_row")
  26.         .data(matrix)
  27.         .enter().append("g").attr("class", "shape_row")
  28.    
  29.     var shapes = shape_row.selectAll("g.shape")
  30.         .data(function(d) { return d; })
  31.       .enter().append("g").attr("class", "shape");
  32.  
  33.     var shapes = g.selectAll(".shapes g.shape_row").selectAll("g.shape")
  34.     shapes.append("rect")
  35.         .attr("width", rw[0])
  36.             .attr("height", rh[0])
  37.             .attr("fill", "#ff0000")
  38.         .attr("rx", corners)
  39.         .attr("ry", corners)
  40.    
  41. }
  42.  
  43. delta.run = function(t, g) {
  44.     //console.log("t", t)
  45.     var shapes = g.selectAll("g.shapes g.shape_row").selectAll("g.shape")
  46.     var rect = shapes.select("rect")
  47.         .attr("width", function(d,i) {
  48.             var w = d3.interpolate(rw[0], rw[1])(t);
  49.             return w;
  50.         })
  51.         .attr("height", function(d,i) {
  52.             var h = d3.interpolate(rh[0], rh[1])(t)
  53.             return h;
  54.         })
  55.         .attr("fill", function(d,i,j) {
  56.             //var c0 = color[i%2]
  57.             var c0 = d3.interpolateHsl(color[0], color[1])(i / nr)
  58.             //console.log(i, color[0])
  59.             //var c1 = d3.scale.category20b()(3)
  60.             //var c1 = color[(i%2 * -1) + 1]
  61.             var c1 = d3.interpolateHsl(color[0], color[1])(j / nc)
  62.             return d3.interpolateHsl(c0, c1)(t)
  63.         })
  64.         .attr("transform", function(d,i,j) {
  65.             var oddneg = ((i % 2) * -2 + 1)
  66.             //oddneg = 1
  67.             var tt = t - 0.5
  68.             var xt = tt * oddneg - -0.5 * oddneg
  69.             var yt = tt * tt * oddneg - .25 * oddneg
  70.             //var x1 = x[0] + x[1] * xt
  71.             var x1 = x0 + xoffset * xt
  72.             var y1 = y0 + yoffset * yt
  73.             //var xx = d3.interpolate(x[0], x1)(t) * i * xoffset
  74.             //var yy = d3.interpolate(y[0], y1)(t) * j * yoffset
  75.             var xx = x1 + i * xoffset
  76.             var yy = y1 + j * yoffset
  77.             return "translate(" + [
  78.                 xx,
  79.                 yy
  80.                 ] + ")"
  81.         })
  82. }