共用方式為


路徑填滿模式

針對路徑定義的兩種填滿模式是 替代彎曲。 這兩種填滿模式都會使用偶數規則來決定如何填滿封閉路徑。

FP_ALTERNATEMODE套用偶數規則,如下所示:從封閉路徑中的任何任意起點繪製線條,明顯超出封閉路徑的某個點。 如果線條跨越奇數的路徑區段,則起點位於封閉區域內,因此是填滿區域的一部分。 偶數的交叉數表示該點不在要填滿的區域。

FP_WINDINGMODE不僅考慮向量跨越路徑區段的次數,也會考慮每個區段的方向。 路徑會被視為從頭到尾繪製,其中每個線段的指定點順序所隱含的方向:區段的第一個頂點是「從」點,而第二個頂點則是「到」點。 現在繪製替代模式中所述的相同任意線條。 從零開始,針對線條交叉的每個「正向」方向線段新增一個,並針對每個「反向」方向線段交叉減去一個方向線段。 (正向和反向是以線段的點乘積和任意線條為基礎。) 如果計數結果為非零,則起點位於填滿區域內;零計數表示點超出填滿區域。

下圖顯示如何將這兩個規則套用至自我交集路徑更複雜的情況。

此圖說明路徑的替代和彎曲填滿模式之間的差異。

在替代填滿模式中,點 A 是內部的,因為光線 1 通過奇數的線條線段,而點 B 和 C 位於外部,因為光線 2 和 3 會通過偶數的線段。 在繞線填滿模式中,點 A 和 C 位於內部,因為正向 (正) 和反向 (負數) 線段分別由其光線交叉、1 和 3 交叉的線條線段總和不是零,而點 B 位於外部,因為光線 2 交叉的正線段和反向線段的總和為零。