HTML5 Canvas填充两种颜色

sia*_*ana 3 css html5 canvas

我要求用两种颜色填充形状 - 就像棋盘一样.

我已经看到了一些css的渐变效果,但没有看到像这样的任何例子.

这在Html5 Canvas中是否可行?

Sim*_*ris 8

你确定可以.事实上,你可以用任何可重复的东西填充任意形状,即使你在Canvas中制作的形状也是如此!

这是一个任意形状的例子,它充满了在画布上定义的"豌豆荚":http://jsfiddle.net/NdUcv/

这是一个简单的棋盘图案:http://jsfiddle.net/NdUcv/2/

第二个使形状填充看起来像这样:

在此输入图像描述

我通过制作一个画布然后绘制我想要重复的任何内容来创建该模式:

var pattern = document.createElement('canvas');
pattern.width = 40;
pattern.height = 40;
var pctx = pattern.getContext('2d');

// Two green rects make a checkered square: two green, two transparent (white)
pctx.fillStyle = "rgb(188, 222, 178)";
pctx.fillRect(0,0,20,20);
pctx.fillRect(20,20,20,20);
Run Code Online (Sandbox Code Playgroud)

然后在我的普通画布上我可以做到:

var pattern = ctx.createPattern(pattern, "repeat");
ctx.fillStyle = pattern;
Run Code Online (Sandbox Code Playgroud)

并用该模式绘制任何填充.

当然它不必是画布路径,您可以使用棋盘图像(或任何类型的图像)并使用画布图案用它填充形状.