waves = {
const svg = d3.select(DOM.svg(1000, 1000));
var dict = [];
for (var i = 0; i < 38; i++) {
for (var j = 0; j < 38; j++) {
dict.push({"x": 25+i*25 + (j%2)*12.5,
"y": 25+j*25
});
}
}
svg.selectAll("circle")
.data(dict)
.enter()
.append("circle")
.attr("r", 4)
.attr("cx", function(d, i) {
return d["x"];
})
.attr("cy", function(d, i) {
return d["y"];
})
d3.timer(animateThings);
function animateThings(time) {
var sineVal = 500*(Math.sin(time*0.001) + 1);
svg.selectAll("circle").attr("r", function(d) {
if (Math.abs(d["x"] - sineVal) < 50) {
return 4 + (5-Math.abs(d["x"] - sineVal)/10)
return 10;
}
return 4
})
.attr("fill", function(d) {
return d3.interpolateViridis(1-(Math.abs(d["x"] - sineVal)/1000));
});
}
return svg.node()
}