【发布时间】:2022-01-21 17:07:25
【问题描述】:
我想沿 x,y 坐标为圆设置动画。我希望圆圈沿着提供的 x,y 坐标移动。到目前为止,我的代码只是为每个 x,y 点绘制多个圆圈。圆圈遵循 x,y 坐标,但我想要的只是一个圆圈沿着这些点移动。我提供了几个数据点的样本。该数据集有数千个 x,y 点。
//Sample data
var dataPoints = [
{ "x": 58.83, "y": 26.67 },
{ "x": 58.83, "y": 26.69 },
{ "x": 58.82, "y": 26.71 },
{ "x": 58.82, "y": 26.72 },
{ "x": 58.81, "y": 26.73 },
{ "x": 58.8, "y": 26.71 },
{ "x": 58.8, "y": 26.7 },
{ "x": 58.8, "y": 26.68 },
{ "x": 58.79, "y": 26.66 },
{ "x": 58.79, "y": 26.63 },
{ "x": 58.8, "y": 26.61 },
{ "x": 58.8, "y": 26.59 },
{ "x": 58.8, "y": 26.56 },
{ "x": 58.81, "y": 26.53 },
{ "x": 58.81, "y": 26.51 },
{ "x": 58.82, "y": 26.48 },
{ "x": 58.83, "y": 26.46 },
{ "x": 58.84, "y": 26.45 },
{ "x": 58.84, "y": 26.46 },
{ "x": 58.84, "y": 26.47 },
{ "x": 58.83, "y": 26.49 },
{ "x": 58.83, "y": 26.51 },
{ "x": 58.83, "y": 26.53 },
{ "x": 58.82, "y": 26.55 },
{ "x": 58.82, "y": 26.58 },
{ "x": 58.81, "y": 26.6 },
{ "x": 58.81, "y": 26.62 },
{ "x": 58.81, "y": 26.64 },
{ "x": 58.81, "y": 26.67 },
{ "x": 58.8, "y": 26.69 },
{ "x": 58.8, "y": 26.7 },
{ "x": 58.8, "y": 26.71 },
{ "x": 58.81, "y": 26.72 },
{ "x": 58.8, "y": 26.71 },
{ "x": 58.8, "y": 26.7 },
{ "x": 58.8, "y": 26.67 },
{ "x": 58.8, "y": 26.63 },
{ "x": 58.8, "y": 26.6 },
{ "x": 58.8, "y": 26.57 },
{ "x": 58.81, "y": 26.53 },
{ "x": 58.82, "y": 26.51 },
{ "x": 58.83, "y": 26.48 },
{ "x": 58.84, "y": 26.45 },
{ "x": 58.85, "y": 26.43 },
{ "x": 58.85, "y": 26.42 },
{ "x": 58.86, "y": 26.41 },
{ "x": 58.86, "y": 26.4 },
{ "x": 58.85, "y": 26.41 },
{ "x": 58.85, "y": 26.42 },
{ "x": 58.84, "y": 26.43 },
{ "x": 58.84, "y": 26.45 },
{ "x": 58.84, "y": 26.47 },
{ "x": 58.84, "y": 26.49 },
{ "x": 58.84, "y": 26.52 },
{ "x": 58.83, "y": 26.56 },
{ "x": 58.82, "y": 26.59 },
{ "x": 58.82, "y": 26.64 },
{ "x": 58.81, "y": 26.67 },
{ "x": 58.8, "y": 26.7 },
{ "x": 58.79, "y": 26.73 },
{ "x": 58.79, "y": 26.75 },
{ "x": 58.78, "y": 26.76 },
{ "x": 58.78, "y": 26.74 },
{ "x": 58.78, "y": 26.71 },
{ "x": 58.78, "y": 26.69 },
{ "x": 58.78, "y": 26.65 },
{ "x": 58.78, "y": 26.6 },
{ "x": 58.78, "y": 26.56 },
{ "x": 58.79, "y": 26.52 },
{ "x": 58.79, "y": 26.48 }
]
这是在 D3 中绘制圆圈的代码部分。
var myCircle = this.svg.append('g');
// Add circles
myCircle.selectAll("circle")
.data(
dataPoints
)
.enter()
.append("circle")
.attr("cx", function (d: { x: d3.NumberValue; }) {
return x(d.x);
})
.attr("cy", function (d: { y: d3.NumberValue; }) {
return y(d.y);
})
.attr("r", 5)
.style("opacity", .9)
.style("fill", this.myColor)
.transition()
.delay(3000)
.duration(3000)
【问题讨论】:
标签: javascript d3.js