{
const valueData = [];
const speedD = [];
const start = 0;
const end = 100;
d3.select("rect")
.transition()
.duration(1000)
.ease(d3.easeLinear)
.tween("allTween", function () {
const interpolate = d3.interpolateNumber(start, end);
return function (t) {
const val = interpolate(t);
d3.select("rect").attr("x", `${val}`);
valueData.push({ x: t, y: d3.easeLinear(t) * end });
speedD.push({ x: t, y: d3.easeLinear(t) * end });
speedD.forEach((a, i, r) => {
if (i != 0) {
a.speed = Math.round((r[i].y - r[i - 1].y) / (r[i].x - r[i - 1].x));
} else {
a.speed = null;
}
});
const speedData = speedD.filter((a, i) => i != 0);
console.log(valueData, speedData);
};
});
}