スタックのオーバーフローに関して同様の質問があります。そのコードを使って、いくつかのテキストが表示されていますが、正しい場所にはありません。それはチャートから離れたところですが、それは湾曲しており、テキストの内容は正しいです。円の中の箱に沿ってテキストが配置されています。テキストの配置が間違っています
これは私のコードとフィドルです。どんな助けも素晴らしいだろう! textPath
の
function polarToCartesian(centerX, centerY, radius, angleInDegrees)
{ var angleInRadians = (angleInDegrees - 90) * Math.PI/180.0;
return { x: centerX + (radius * Math.cos(angleInRadians)),
y: centerY + (radius * Math.sin(angleInRadians))
};
}
function describeArc(x, y, radius, startAngle, endAngle) {
var start = polarToCartesian(x, y, radius, endAngle);
var end = polarToCartesian(x, y, radius, startAngle);
var arcSweep = endAngle - startAngle <= 180 ? "0" : "1";
var d = [
"M", start.x, start.y,
"A", radius, radius, 0, 1, 1, end.x, end.y
].join(" ");
return d;
}
var arcs = node.append("path")
.attr("fill", "none")
.attr("id", function (d, i) { return "s" + i; })
.attr("d", function (d, i) {
return describeArc(d.x, d.y, d.r, 160, -160)
});
var arcPaths = node.append("g")
.style("fill", "black");
var labels = arcPaths.append("text")
.style("opacity", function (d) {
if (d.depth == 0) {
return 0.0;
} else {
return 0.8;
}})
.attr("font-size", 10)
.style("text-anchor", "middle")
.append("textPath")
.attr("xlink:href", function (d, i) { return "#s" + i; })
.attr("startOffset", function (d, i) { return "50%"; })
.text(function (d) { return d.data.key == "root" ? "" :
d.data.key; })
"defs"(参照しているパス)の定義方法を表示できますか? – genestd