Javascript 如何使画布圆弧具有锐角圆弧

Javascript 如何使画布圆弧具有锐角圆弧,javascript,html,canvas,Javascript,Html,Canvas,因此,出于某种原因,我发誓这就是arc在canvas标记中始终起作用的方式,但不幸的是,事实并非如此 因此,我所期望并最终想要的最终结果是: canvas.arc(x,y,r,0,360); //ik this should be Math.PI * 2 canvas.arc(x,y,r,0,270); //and other Math.PI * # canvas.arc(x,y,r,0,180); //But I used degrees to help show canvas.arc(x,

因此,出于某种原因,我发誓这就是
arc
在canvas标记中始终起作用的方式,但不幸的是,事实并非如此

因此,我所期望并最终想要的最终结果是:

canvas.arc(x,y,r,0,360); //ik this should be Math.PI * 2 
canvas.arc(x,y,r,0,270); //and other Math.PI * #
canvas.arc(x,y,r,0,180); //But I used degrees to help show
canvas.arc(x,y,r,0,90);  //how I'd like it to use it.
它将使这些圆圈:

但不幸的是,它做了一些不同的事情,当你做上面的代码。。。 它可以创建圆的笔划部分,但填充它只是从开始角度到结束角度绘制一条线并填充它:

我能想到的唯一解决办法是以某种方式越过圆弧的填充过程,而不是直线到另一个角度,首先直线到圆弧的中心,然后返回到结束角。但我不知道如何做到这一点,我也不太了解贝泽斯,无法尝试从头开始重新创建圆弧,以便使用我想要的lineTo用法


总结:如何使填充的圆在部分圆的中心具有实际的“角度”?

画布中的圆一开始很难让你的头环绕,但有一个相当简单的解决方案:

ctx.lineTo();
问题不在于
fill()
方法,而在于如何绘制笔划

我是这样做的:

const canvas=document.querySelector('canvas');
const ctx=canvas.getContext('2d');
ctx.beginPath();
ctx.arc(50,50,50,Math.PI,Math.PI*1.5,false);
ctx.lineTo(50,50);
ctx.closePath();
ctx.fill()