fill(fillRule) clip( )和isPointinPath ( ) 非零环绕规则和奇偶环绕规则

fillRule

"nonzero":非零环绕原则,默认的原则。

"evenodd":奇偶环绕原则

1."nonzero":非零环绕原则

如果是与路径顺时针相交时,那么计数器就加1, 如果是与路径逆时针相交时,那么计数器就减1.

如果计数器始终不为0,那么此区域就在路径范围里面,在调用fill()方法时,浏览器就会对其进行填充。如果最终值是0,那么此区域就不在路径范围内,浏览器就不会对其进行填充。


2."evenodd":奇偶环绕原则

平面内的任何一点P,引出一条射线,注意不要经过多边形的顶点,如果射线与多边形的交点的个数为奇数,则点P在多边形的内部,浏览器就会对其进行填;如果交点的个数为偶数,则点P在多边形的外部,浏览器就不会对其进行填充。


根据两个规则填充曲线(顶部):奇数规则(左)和非零绕组规则(右)。在每种情况下,箭头显示来自曲线的P点的射线。在偶数情况下,光线与两条线相交,即偶数;因此,P被认为是“曲线外”。通过非零绕组规则,光线以顺时针方向相交两次,每次对绕组分数贡献-1:因为总数-2不为零,所以P被判定为曲线内部

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容