canvas“非零环绕规则”
2018-01-04 本文已影响0人
infi_
“非零环绕规则”是这么来判断有自我交叉情况的路径的:
对于路径中的任意给定区域,从该区域内部画一条足够长的线段
使此线段的终点完全落在路径范围之外。
接下来,将计数器初始化为0,然后,每当这条线段与路径上的直线或曲线相交时,就
改变计数器的值。如果是与路径顺时针部分相交,则加1,如果是与路径逆时针部分相交就
减一。若计数器的最终值不是0,那么此区域就在路径里面,在调用fill()方法时,浏览器就会对其进行填充。如果最终值是0,那么此区域就不在路径内部,浏览器也就不会对其进行填充