0

我目前正在用画布标签绘制弧线,有人问我是否可以羽化(软化)弧线的边缘。这可能吗?在这里谷歌搜索和搜索似乎比它的价值更麻烦。

我也尝试过查看 mdn,但羽化元素的资源似乎很少。

4

2 回答 2

4

从您在评论中链接到的图像来看,您似乎正在尝试制作阴影。

如果是这种情况,您可以这样做:

在此处输入图像描述

使用此代码:

c.beginPath();
c.arc(33, 33, 22, 0, Math.PI, false);
c.shadowOffsetX = 2;
c.shadowOffsetY = 2;
c.shadowBlur = 5;
c.shadowColor  = 'rgba(0, 0, 0, 0.8)';
c.fillStyle = "red";
c.fill();

​示范

或者,也许您正在尝试这样做:

在此处输入图像描述

c.beginPath();
c.arc(33, 33, 22, 10, Math.PI*2, false);
c.lineWidth = 2;
var gradient = c.createLinearGradient(20, 0, 50, 40);
gradient.addColorStop(0, "white");
gradient.addColorStop(0.5, 'red');
gradient.addColorStop(1, "white");
c.strokeStyle = gradient;
c.stroke();

示范

于 2012-11-23T15:08:03.837 回答
0

不幸的是,没有羽毛选项(还),但是回答这个问题 的人提出了这个小提琴,它可能非常接近你想要使用 RGBA 渐变实现的目标:

gradient.addColorStop(0,    "rgba("+r+","+g+","+b+",0)");

在这里查看他的 jsfiddle:http: //jsfiddle.net/chdh/MmYAt/

但这仍然有点麻烦。我想为此提交功能请求,但我根本不知道在哪里?

于 2012-11-23T15:39:06.597 回答