Skip to content

Commit 60b6798

Browse files
committed
Clamp padAngle.
1 parent e2ef1c7 commit 60b6798

3 files changed

Lines changed: 19 additions & 11 deletions

File tree

d3.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6559,7 +6559,7 @@
65596559
function pie(data) {
65606560
var n = data.length, values = data.map(function(d, i) {
65616561
return +value.call(pie, d, i);
6562-
}), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle), pa = p * (da < 0 ? -1 : 1), np = Math.abs(da) >= τε && n > 1 ? n : n - 1, k = (da - np * pa) / d3.sum(values), index = d3.range(n), arcs = [], v;
6562+
}), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, np = Math.abs(da) >= τε && n > 1 ? n : n - 1, p = Math.min(da / np, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), k = (da - np * pa) / d3.sum(values), index = d3.range(n), arcs = [], v;
65636563
if (da > 0 ^ k > 0) k = 0, p = da / np;
65646564
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
65656565
return values[j] - values[i];
@@ -7912,7 +7912,7 @@
79127912
y0 = r1 * Math.sin(a0 + p1);
79137913
x1 = r1 * Math.cos(a1 - p1);
79147914
y1 = r1 * Math.sin(a1 - p1);
7915-
var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;
7915+
var d1 = Math.abs(a1 - a0 - 2 * p1), l1 = d1 <= π ? 0 : 1;
79167916
if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {
79177917
var h1 = (a0 + a1) / 2;
79187918
x0 = r1 * Math.cos(h1);
@@ -7925,7 +7925,7 @@
79257925
y2 = r0 * Math.sin(a1 - p0);
79267926
x3 = r0 * Math.cos(a0 + p0);
79277927
y3 = r0 * Math.sin(a0 + p0);
7928-
var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;
7928+
var d0 = Math.abs(a0 - a1 + 2 * p0), l0 = d0 <= π ? 0 : 1;
79297929
if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {
79307930
var h0 = (a0 + a1) / 2;
79317931
x2 = r0 * Math.cos(h0);
@@ -7934,10 +7934,18 @@
79347934
}
79357935
}
79367936
var path = [];
7937-
path.push("M" + x0, "," + y0);
7938-
if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
7939-
path.push("L" + x2, "," + y2);
7940-
if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
7937+
if (rc) {
7938+
if (r1) {
7939+
var rc1 = Math.min(rc, r1 / (1 / Math.sin(d1 / 2) + 1));
7940+
} else {
7941+
path.push("M", x0, ",", y0);
7942+
}
7943+
} else {
7944+
path.push("M", x0, ",", y0);
7945+
if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
7946+
path.push("L", x2, ",", y2);
7947+
if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
7948+
}
79417949
path.push("Z");
79427950
return path.join("");
79437951
}

0 commit comments

Comments
 (0)