У меня была такая же проблема раньше, но я смог решить эту проблему позже.
Чего мне не хватало, так это того, что я рисовал арку в контексте и пытался ее заполнить, из-за чего цвет распространялся по всему кругу, потому что теперь контекст был ограничен только между линией радиуса от центра к начальной точке. арки и арки, чтобы ограничить контекст.
Но не было другой границы линии от конца арки к центру, как только я нарисовал эту линию, используя следующее:
ctx.lineTo(center coordinates of circle);
У меня есть полная граница круговой диаграммы, так что теперь, если я залью цвет в контексте, он не будет распространяться по всему кругу, а будет ограничен этим кругом.