diff --git a/src/renderer.ts b/src/renderer.ts index fd1d45e..23731c1 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -74,7 +74,7 @@ export function ellipse(x: number, y: number, width: number, height: number, o: export function generateEllipseParams(width: number, height: number, o: ResolvedOptions): EllipseParams { const psq = Math.sqrt(Math.PI * 2 * Math.sqrt((Math.pow(width / 2, 2) + Math.pow(height / 2, 2)) / 2)); - const stepCount = Math.max(o.curveStepCount, (o.curveStepCount / Math.sqrt(200)) * psq); + const stepCount = Math.ceil(Math.max(o.curveStepCount, (o.curveStepCount / Math.sqrt(200)) * psq)); const increment = (Math.PI * 2) / stepCount; let rx = Math.abs(width / 2); let ry = Math.abs(height / 2); diff --git a/visual-tests/canvas/ellipse2.html b/visual-tests/canvas/ellipse2.html index b4b78b7..7c99f18 100644 --- a/visual-tests/canvas/ellipse2.html +++ b/visual-tests/canvas/ellipse2.html @@ -17,7 +17,9 @@ rc.ellipse(300, 350, 380, 280, { roughness: 2 }); rc.ellipse(200, 150, 380, 280, { roughness: 1 }); - rc.ellipse(400, 150, 380, 280, { roughness: 0 }); + rc.ellipse(400, 150, 100.65800865800863, 17.70129870129859, { roughness: 0 }); + rc.ellipse(200, 150, 100, 17, { roughness: 0, fill: 'red' }); + rc.ellipse(200, 50, 100, 17, { roughness: 0, fill: 'pink', fillStyle: 'solid' });