FillType
widing(默认)
widing的特征是:所有内部的点都在内部
/**
* Specifies that "inside" is computed by a non-zero sum of signed
* edge crossings.
*/
WINDING (0),
定义内部为:计数值为非0
计算内外部区域的规则:
从左侧插入计数+1,从右侧插入计数-1,最后如果为0,那么在外部,大于0在内部
- 下图,两个逆时针的圆相交,看中间那块相交区域,他穿过了两个点,都是从左侧插入的,最终计数为2,那么这个点在图形的里面
代码如下:
如果不设置setFillType,默认为WINDING
EVEN_ODD
计算内外部规则: 一个点向外部做射线,如果相交个数为偶数为外部,注意这种模式下,与顺时针和逆时针无关!!!
镂空效果
使用EVEN_ODD,不要用WINDING,因为EVEN_ODD不需要考虑方向
仪表盘
PathDashEffect和PathMesure.getLength