Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何制作旋转梯度(在圆上)?_Javascript_Html_Canvas_Gradient - Fatal编程技术网

Javascript 如何制作旋转梯度(在圆上)?

Javascript 如何制作旋转梯度(在圆上)?,javascript,html,canvas,gradient,Javascript,Html,Canvas,Gradient,我使用圆弧函数创建了一个简单的圆: /* 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(

我使用圆弧函数创建了一个简单的圆:

/* 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。旋转(x),但它会旋转整个圆

是的。渐变从
x1,y1
x2,y2
,这是
createLinearGradient

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

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

或者随意更改:

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


等等。

谢谢,但我不太明白第二个坐标x2和y2。我应该通过圆周吗?你只需要使用梯度开始和结束的两点。所以现在你的是从左上角开始,以半径,半径结束。你希望它从哪里开始和结束?梯度应该在整个圆上展开,所以我必须设置半径。我已经做了一点实验,但是我怎样才能做一个循环呢?我的意思是当x和y等于半径时是什么?