canvas实现奇偶原则填充(fill(‘evenodd’))

1. 场景描述

在我的业务需求中,有一个功能是实现套索,并且用户圈套的部分如果为偶数次则默认用户不需要该偶数次的内容。如下图:
canvas实现奇偶原则填充(fill(‘evenodd’))_第1张图片
画图步骤:第一步先画外圈(较大),第二步画内圈(较小)即类似于同心圆。那么第二个圆为偶数次填充则默认用户不需要。


2. 相信大家都看过很多预设的图像使用奇偶规则填充的案例了:如下

“非零环绕”与“奇偶原则”
canvas实现奇偶原则填充(fill(‘evenodd’))_第2张图片

但是这个并不是我的业务场景所需要用到的,我的需求是通过笔触的绘画(即未知渲染点),将二次绘制的部分使用奇偶原则。

3. API使用和参考:

参考链接:fill(path,fillRule)

![1648864008(1).png](/img/bVcYUeU)

canvas实现奇偶原则填充(fill(‘evenodd’))_第3张图片
对于path2D的使用,在上面的链接中也有提到过。

4. 代码展示





    
    
    
    Document
    



    




canvas实现奇偶原则填充(fill(‘evenodd’))_第4张图片

你可能感兴趣的:(前端canvas)