In the svg recomendation there are no transformation possible for the circle shape to become a square. What you can try to do, and if you have control over this part, is to draw squares instead of circles and apply a border radius on it. Something like this:
d3.select("body").select("svg").append("rect")
.attr("rx",100)
.attr("ry",100)
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",100)
.attr("stroke","black")
.attr("fill","white");
Then the transition from a circle to a square could be done as:
d3.select("rect")
.transition()
.duration(1000)
.attr("rx",0)
.attr("ry",0);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…