From 89487501b6d05502da0fd57ee6233bb35d07716c Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Sat, 12 Nov 2022 14:47:08 -0500 Subject: [PATCH] fix: Always draw full arcs and borders for doughnut slices (#10806) * test: Add a failing test for single-slice doughnut with offset * fix: Always draw full arcs and borders for doughnut slices Fixes #10801 * test: Update existing image --- src/elements/element.arc.ts | 78 +++++++----------- .../single-slice-circumference-405.png | Bin 12440 -> 11157 bytes .../single-slice-offset.js | 16 ++++ .../single-slice-offset.png | Bin 0 -> 28982 bytes 4 files changed, 45 insertions(+), 49 deletions(-) create mode 100644 test/fixtures/controller.doughnut/single-slice-offset.js create mode 100644 test/fixtures/controller.doughnut/single-slice-offset.png diff --git a/src/elements/element.arc.ts b/src/elements/element.arc.ts index b9b9474e7..7e19c9115 100644 --- a/src/elements/element.arc.ts +++ b/src/elements/element.arc.ts @@ -67,21 +67,18 @@ function rThetaToXY(r: number, theta: number, x: number, y: number) { /** - * Path the arc, respecting the border radius - * - * 8 points of interest exist around the arc segment. - * These points define the intersection of the arc edges and the corners. + * Path the arc, respecting border radius by separating into left and right halves. * * Start End * - * 1---------2 Outer + * 1--->a--->2 Outer * / \ * 8 3 * | | * | | * 7 4 * \ / - * 6---------5 Inner + * 6<---b<---5 Inner */ function pathArc( ctx: CanvasRenderingContext2D, @@ -129,8 +126,10 @@ function pathArc( ctx.beginPath(); if (circular) { - // The first arc segment from point 1 to point 2 - ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle); + // The first arc segments from point 1 to point a to point 2 + const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2; + ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle); + ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle); // The corner segment from point 2 to point 3 if (outerEnd > 0) { @@ -148,8 +147,10 @@ function pathArc( ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI); } - // The inner arc from point 5 to point 6 - ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true); + // The inner arc from point 5 to point b to point 6 + const innerMidAdjustedAngle = ((endAngle - (innerEnd / innerRadius)) + (startAngle + (innerStart / innerRadius))) / 2; + ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), innerMidAdjustedAngle, true); + ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + (innerStart / innerRadius), true); // The corner segment from point 6 to point 7 if (innerStart > 0) { @@ -191,17 +192,12 @@ function drawArc( const {fullCircles, startAngle, circumference} = element; let endAngle = element.endAngle; if (fullCircles) { - pathArc(ctx, element, offset, spacing, startAngle + TAU, circular); - + pathArc(ctx, element, offset, spacing, endAngle, circular); for (let i = 0; i < fullCircles; ++i) { ctx.fill(); } - if (!isNaN(circumference)) { - endAngle = startAngle + circumference % TAU; - if (circumference % TAU === 0) { - endAngle += TAU; - } + endAngle = startAngle + (circumference % TAU || TAU); } } pathArc(ctx, element, offset, spacing, endAngle, circular); @@ -209,39 +205,14 @@ function drawArc( return endAngle; } -function drawFullCircleBorders(ctx: CanvasRenderingContext2D, element: ArcElement, inner: boolean) { - const {x, y, startAngle, pixelMargin, fullCircles} = element; - const outerRadius = Math.max(element.outerRadius - pixelMargin, 0); - const innerRadius = element.innerRadius + pixelMargin; - - let i; - - if (inner) { - clipArc(ctx, element, startAngle + TAU); - } - - ctx.beginPath(); - ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true); - for (i = 0; i < fullCircles; ++i) { - ctx.stroke(); - } - - ctx.beginPath(); - ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU); - for (i = 0; i < fullCircles; ++i) { - ctx.stroke(); - } -} - function drawBorder( ctx: CanvasRenderingContext2D, element: ArcElement, offset: number, spacing: number, - endAngle: number, circular: boolean, ) { - const {options} = element; + const {fullCircles, startAngle, circumference, options} = element; const {borderWidth, borderJoinStyle} = options; const inner = options.borderAlign === 'inner'; @@ -257,16 +228,25 @@ function drawBorder( ctx.lineJoin = borderJoinStyle || 'bevel'; } - if (element.fullCircles) { - drawFullCircleBorders(ctx, element, inner); + let endAngle = element.endAngle; + if (fullCircles) { + pathArc(ctx, element, offset, spacing, endAngle, circular); + for (let i = 0; i < fullCircles; ++i) { + ctx.stroke(); + } + if (!isNaN(circumference)) { + endAngle = startAngle + (circumference % TAU || TAU); + } } if (inner) { clipArc(ctx, element, endAngle); } - pathArc(ctx, element, offset, spacing, endAngle, circular); - ctx.stroke(); + if (!fullCircles) { + pathArc(ctx, element, offset, spacing, endAngle, circular); + ctx.stroke(); + } } export interface ArcProps extends Point { @@ -385,8 +365,8 @@ export default class ArcElement extends Element { ctx.fillStyle = options.backgroundColor; ctx.strokeStyle = options.borderColor; - const endAngle = drawArc(ctx, this, radiusOffset, spacing, circular); - drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular); + drawArc(ctx, this, radiusOffset, spacing, circular); + drawBorder(ctx, this, radiusOffset, spacing, circular); ctx.restore(); } diff --git a/test/fixtures/controller.doughnut/single-slice-circumference-405.png b/test/fixtures/controller.doughnut/single-slice-circumference-405.png index 0591cca94251e29fa477a4b7e9de1356532aeade..db4e25235095a759549bb08ec0e1945d671644c5 100644 GIT binary patch literal 11157 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 literal 12440 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%0D$+P>PcH8QvOsHF;cx|r&Uib8e>DS>f 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 Ci^QY= literal 0 HcmV?d00001