{
const svg = d3.create("svg")
.attr("width", width)
.attr("height", 300);
var a = [{'start': 100, 'end': 200},{'start':100, 'end':200}];
var t = 0;
function updatea (){
a[0].start += 5*Math.sin(t);
a[0].end += 5*Math.cos(t);
a[1].start += 5*Math.cos(t);
a[1].end += 5*Math.sin(t);
t += 0.1;
var miao = svg.selectAll('g').data(a).join(
enter => {
let entered = enter.append('g')
.attr('transform', (d,i) =>'translate('+d.start+','+(i+1)*50+')')
.attr('class','symbol');
entered.append('circle').attr('r', 10).attr('fill','red');
entered.append('circle').attr('class','end').attr('r', 15).attr('fill','yellow').attr('cx',d=>d.end);
},
update => {
update.attr('transform', (d,i) =>'translate('+d.start+','+(i+1)*50+')')
update.select('.end').attr('cx',d=>d.end);
return update
},
exit => exit.remove()
)
}
while (true) {
updatea();
yield svg.node();
await Promises.tick(250);
}
}