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

发布于 2024-11-03 09:29:33 字数 442 浏览 3 评论 0原文

我用 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) ,但这会旋转整个圆!

I create a simple circle with the arc function:

/* 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();

So I want to rotate the gradient, is that possible?
I've tried with ctx.rotate(x) but that rotates the whole circle!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一身骄傲 2024-11-10 09:29:33

是的。您的渐变将从 x1,y1x2,y2,这是 createLinearGradient 的最后四个参数。

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

vargradient = ctx.createLinearGradient(this.radius, this.radius, 0, 0);

或者随意更改它:

vargradient = ctx.createLinearGradient(this.radius, 0, 0, 0);

等等。

Yes. Your gradient is going from x1,y1 to x2,y2, which are the four last arguments of createLinearGradient

For example, to reverse your gradient do this:

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

Or change it up however you please:

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

And so on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文