canvas — 非零环绕规则

这篇博客介绍了HTML5 Canvas中非零环绕规则的概念,该规则用于确定如何填充互相交叉的路径。通过beginPath()开始新路径,并利用fill()方法,canvas根据非零环绕规则判断路径填充。文章通过一个圆环效果的示例,解释了路径计数方法,逆时针路径减1,顺时针路径加1,计数为0则不填充。并提供了实现圆环效果的代码片段。
摘要由CSDN通过智能技术生成

学习 《HTML5 Canvas 核心技术图形、动画与游戏开发》笔记 二:

“非零环绕规则” 实现如下圆环效果:



canvas 中可通过 beginPath() 来开始一段新的路径,如果当前路径是循环的,或者包含多个相交的子路径时,当fill()方法被调用时,canvas 绘图环境变量就会判断,应该如何对当前路径进行填充。canvas在填充那种互相有交叉的路径时,使用"非零环绕规则"。


    非零环绕原理:

    如图1所示:假如有两条子路径,里面的路径是逆时针,外面一条是顺时针。当计算里面一条区域时,按照箭头方直到没有子路径为止向往外计数,遇到顺时针则加 1,遇到逆时针则减 1。若计数最终值不是 0,那么此区域,在调用fill()方法时,浏览器会对其进行填充。如果是 0,那么此区域相当于不在路径中,浏览器不会对其进行填充。最终填充效果如图2所示。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值