CanvasRenderingContext2D:fill() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Canvas 2D API 的 CanvasRenderingContext2D.fill() 方法使用当前的 fillStyle 来填充当前或给定的路径。

语法

js
fill()
fill(path)
fill(fillRule)
fill(path, fillRule)

参数

fillRule

确定一个点在填充区域内部还是外部的算法。可能的值

nonzero

非零环绕规则。默认规则。

evenodd

奇偶缠绕规则

路径

要填充的 Path2D 路径。

返回值

无(undefined)。

示例

填充矩形

此示例使用 fill() 方法填充一个矩形。

HTML

html
<canvas id="canvas"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.rect(10, 10, 150, 100);
ctx.fill();

结果

指定路径和 fillRule

此示例将一些交叉线保存到 Path2D 对象。然后使用 fill() 方法将对象渲染到画布上。通过使用 "evenodd" 规则,对象中心留有一个未填充的孔;默认情况下(使用 "nonzero" 规则),该孔也会被填充。

HTML

html
<canvas id="canvas"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

// Create path
let region = new Path2D();
region.moveTo(30, 90);
region.lineTo(110, 20);
region.lineTo(240, 130);
region.lineTo(60, 130);
region.lineTo(190, 20);
region.lineTo(270, 90);
region.closePath();

// Fill path
ctx.fillStyle = "green";
ctx.fill(region, "evenodd");

结果

规范

规范
HTML
# dom-context-2d-fill-dev

浏览器兼容性

另见