如何制作旋转渐变(在圆上)?

时间:2011-04-27 17:09:49

标签: javascript html5 canvas gradient

我使用arc函数创建一个简单的圆圈:

/* ctx is the 2d context */ 
ctx.beginPath();
  var gradient = ctx.createLinearGradient(0, 0, this.radius, this.radius);
  gradient.addColorStop(0, '#FF0000');
  gradient.addColorStop(1, '#FFFFFF');
  ctx.lineWidth = 10;

  ctx.arc(this.radius, this.radius, this.radius, 0, 2*Math.PI, true);
  ctx.strokeStyle = gradient;
ctx.stroke();

所以我想旋转渐变,这可能吗? 我试过用 ctx.rotate(x)但是这会旋转整个圆圈!

1 个答案:

答案 0 :(得分:3)

是。您的渐变从x1,y1变为x2,y2,这是createLinearGradient的最后四个参数

例如,要反转渐变,请执行以下操作:

var gradient = ctx.createLinearGradient(this.radius, this.radius, 0, 0);

或者随便改变它:

var gradient = ctx.createLinearGradient(this.radius, 0, 0, 0);

等等。