我正在尝试在 d3 中创建一个半圆。使用基数插值会产生一条接近我想要的路径,但还不够“圆”。我如何编写自己的插值器来更好地绕过这条路径,或者有更好的方法吗?
这是我到目前为止所拥有的:http: //jsfiddle.net/Wexcode/jEfsh/
<svg width="300" height="500">
<g id="g-1"></g>
<g id="g-2"></g>
</svg>
JS:
var curved = d3.svg.line()
.x(function(d) { return d.x; })
.y(function(d) { return d.y; })
.interpolate("cardinal")
.tension(0);
var straight = d3.svg.line()
.x(function(d) { return d.x; })
.y(function(d) { return d.y; })
.interpolate("linear")
.tension(0);
var points = [{x: 70, y: 52.5}, {x: 250, y: 250}, {x: 70, y: 447.5}];
d3.select("#g-1").append("path").attr("d", curved(points));
d3.select("#g-2").append("path").attr("d", straight(points));