arc() 関数がどのように機能するかを現在理解しているにもかかわらず、なぜパックマンの形を描画できないのかを理解しようとしています。
Chrome/Firefox で次のコードを試すと、完全な円が描画されますが、これは期待したものではありません。非ゼロの巻線規則と関係があるのではないかと思いますか? 私の推測では、-45 は内部的に正規化されており、その結果、角度スイープが CW ではなく CCW になっていると思われます。しかし、最後の引数を CCW に変更してその仮定をテストしたところ、Chrome では何も変わりませんでした (ただし、何も描画されないという点で FF の動作は異なりました)。
// draw pacman shape
ctx.arc(200,200,50, -45 * DEGREES, 45 * DEGREES, false);
ctx.stroke();