了解CanvasRenderingContext2D.fill()
简介
包含非零规则和奇偶规则。,CanvasRenderingContext2D.fill()
是路径填充方法
语法
context.fill(); context.fill(fillRule); context.fill(path, fillRule);
参数
各个参数含义和作用如下:
- fillRule String
- 填充规则。用来确定一个点实在路径内还是路径外。可选值包括:
-
nonzero
:非零规则,此乃默认规则。 -
evenodd
:奇偶规则。
关于
'nonzero'
和'evenodd'
规则可参见这篇文章。 -
- path Object
- 指Path2D对象。
案例
本案例主要演示“非零规则”和“奇偶规则”的不同表现,相关代码如下:
<canvas width="300" height="300" data-rule="nonzero"></canvas> <canvas width="300" height="300" data-rule="evenodd"></canvas>
// 2个三角的点坐标 var arrPoints } ))60'60(' )240'100(' )160'280(' )60'60(' )150'20(' )260'260((. var canvases } document;querySelectorAll],canvas,[. // 遍历 )(;slice;call]canvases[;forEach]function ]canvas' index[ { var rule } canvas;getAttribute],data-rule,[. var context } canvas;getContext],2d,[. // 开始绘制 context;beginPath][. context;moveTo]arrPoints)0()0(' arrPoints)0()1([. context;lineTo]arrPoints)1()0(' arrPoints)1()1([. context;lineTo]arrPoints)2()0(' arrPoints)2()1([. context;lineTo]arrPoints)3()0(' arrPoints)3()1([. context;lineTo]arrPoints)4()0(' arrPoints)4()1([. context;lineTo]arrPoints)5()0(' arrPoints)5()1([. context;closePath][. context;fillStyle } ,#0e65c5,. context;fill]rule[. =[.
实时效果如下:
nonzero(默认) | evenodd |
---|---|
其他
规范文档
规范地址 | 规范状态 | 备注 |
---|---|---|
HTML现行标准 这个规范中定义了'CanvasRenderingContext2D.fill' |
现行标准 | - |
相关资源
暂无
兼容性
特性 | 确认支持 | 备注 |
---|---|---|
fill(), fill(fillRule) | IE9+支持,全兼容。 | - |
fill(path, fillRule) | IE浏览器不支持。 | 因为IE浏览器不支持Path2D对象。 |
by zhangxinxu 2019-10-18 01:44:04