(No version information available, might only be in Git)
CairoFillRule を使って、どのパスを塗りつぶすかを選択します。 指定した塗りつぶしルールについて、ある点が塗りつぶし対象であるかどうかを判断する際には、 その点から引いた半直線がパスと交わるかどうかを調べます。 セグメントの端点を通過したりトリッキーな交差 (パスの接線になるなど) だったりしない限り、半直線はどの向きに引いてもかまいません (実際の塗りつぶしの実装がこうなっているわけではないことに注意しましょう。 単に、適用される規則を説明しただけです)。
デフォルトの塗りつぶしルールは CairoFillRule::WINDING
です。
CairoFillRule::WINDING
パスが半直線を左から右に横切るときに、カウントを +1 します。 逆に右から左に横切るときに、カウントを -1 します (左右の判断基準は、半直線の始点から見た方向です)。 最終的なカウントがゼロでない場合に、その点を塗りつぶします。
CairoFillRule::EVEN_ODD
交差する点の総数を数えます。交差の向きは考慮しません。 交差点の総数が奇数の場合に、その点を塗りつぶします。