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));