0
我的代码:HTML5 - 画布径向渐变形状边缘
var $c = $('#myCanvas');
$c.attr('width', $(window).innerWidth());
$c.attr('height', $(window).innerHeight() * 0.99);
var cidx=0;
function redraw() {
var ctx = $c.get(0).getContext('2d');
var w = ctx.canvas.width;
var h = ctx.canvas.height;
var r = Math.min(w,h)/2;
ctx.clearRect(0,0,w,h);
ctx.beginPath();
var grad = ctx.createRadialGradient(w/2,h/2, 0.94*r, w/2, h/2, 1*r);
grad.addColorStop(1, "transparent");
grad.addColorStop(0.75, "red");
ctx.fillStyle=grad;
ctx.arc(w/2, h/2, r, 1.5*Math.PI, 1.5*Math.PI + 1*(0.5*Math.PI));
ctx.fill();
ctx.restore();
}
我得到这个结果:
我想要得到这样的结果:
这里有什么办法可以让圆形成为边缘?如果没有变化:
ctx.arc(w/2, h/2, r, 1.5*Math.PI, 1.5*Math.PI + 1*(0.5*Math.PI));
,因为我需要显示时钟,如:
- 四的过去 -
ctx.arc(w/2, h/2, r, 1.5*Math.PI, 1.5*Math.PI + 1*(0.5*Math.PI));
- 半 -
ctx.arc(w/2, h/2, r, 1.5*Math.PI, 1.5*Math.PI + 2*(0.5*Math.PI));
- 四到 -
ctx.arc(w/2, h/2, r, 1.5*Math.PI, 1.5*Math.PI + 3*(0.5*Math.PI));
- 整个小时 -
ctx.arc(w/2, h/2, r, 1.5*Math.PI, 1.5*Math.PI + 4*(0.5*Math.PI));