AS3的环绕规则(winding rules)

环绕(winding)就是一个路径环绕的方向,,分顺时针(正方向)和逆时针(负方向)。注意到Graphics类的drawPath函数的第三个参数:

drawPath(commands:Vector.<int>, data:Vector.<Number>, winding:String = "evenOdd"):void

winding是一个字符常量(在 GraphicsPathWinding类中定义),可取的值有两个:even-odd和non-zero。

even-odd是默认选项,也是传统的做法,即相交的区域不会填充。

non-zero选项不同于even-odd。要判断一个区域是否填充,需要考虑构成该区域边界的路径和是否为零。如果为零,则不填充;否则,填充。这种情况下,每个路径都会有一个数值,顺时针环绕路径的值为1,逆时针环绕路径的值为-1。

具体例子可以看下面:

AS3的环绕规则(winding rules)?

A是even-odd选项,不用管环绕方向。

B是non-zero选项,要特别注意环绕方向。