我正在使用HTML5画布上的createRadialGradient()
进行实验。它可以完美运行,但是当我尝试实现半透明时出现了问题。
我创建了这个jsFiddle来帮助更好地理解:http://jsfiddle.net/rfLf6/1/。
function circle(x, y, r, c) {
ctx.beginPath();
var rad = ctx.createRadialGradient(x, y, 1, x, y, r);
rad.addColorStop(0, c);
rad.addColorStop(1, 'transparent');
ctx.fillStyle = rad;
ctx.arc(x, y, r, 0, Math.PI*2, false);
ctx.fill();
}
ctx.fillRect(0, 0, 256, 256);
circle(128, 128, 200, 'red');
circle(64, 64, 30, 'green');
发生的事情是在坐标为(x,y)处以半径r绘制一个圆形(径向渐变),颜色范围从r到'transparent'。但是绿色圆圈从绿色变成了黑色,而应该变成透明,即背景圆的适当红色。
如何在HTML5画布上实现透明径向渐变?