Javascript 用画架画模糊的半透明圆

Javascript 用画架画模糊的半透明圆,javascript,html5-canvas,easeljs,Javascript,Html5 Canvas,Easeljs,我想画这样的形状: 在我使用EaselJs的画布上。我会画一些基本的画,我需要模糊的半透明的圆圈,在画架上有没有其他的方法来实现这一点 如果我尝试在没有画架的情况下处理模糊的圆,有什么问题吗?我无法对画架JS进行评论,但在常规画布中,你可以绘制一个红色的圆,它有一个红色阴影,X偏移为0,Y偏移为0,模糊大约为25。你可以设置形状的大小以获得半透明的圆。然后使用BoxBlurFilter使其模糊。。所有这些都可以在画架JS中找到,示例见 例如,要获得半透明的圆,可以执行以下操作 var shape

我想画这样的形状: 在我使用EaselJs的画布上。我会画一些基本的画,我需要模糊的半透明的圆圈,在画架上有没有其他的方法来实现这一点


如果我尝试在没有画架的情况下处理模糊的圆,有什么问题吗?

我无法对画架JS进行评论,但在常规画布中,你可以绘制一个红色的圆,它有一个红色阴影,X偏移为0,Y偏移为0,模糊大约为25。

你可以设置形状的大小以获得半透明的圆。然后使用BoxBlurFilter使其模糊。。所有这些都可以在画架JS中找到,示例见
例如,要获得半透明的圆,可以执行以下操作

var shape = new createjs.Shape();
var g = shape.graphics;
g.beginFill("#FFFFFF");
g.drawCircle(0,0,10);
g.endFill();
shape.alpha = 0.5;
stage.addChild(shape);

要绘制轮廓模糊的圆(如中所示),需要使用相同的红色,但透明度值不同的径向渐变填充EaselJS形状。关键是通过rgba()函数指定颜色,该函数用于设置alpha通道(不透明度或透明度)

以下是代码片段:

var circle = new createjs.Shape();

var solidRed = 'rgba(255, 0, 0, 1)';
var transparentRed = 'rgba(255, 0, 0, 0)';

circle.graphics.beginRadialGradientFill(
                  [ solidRed, solidRed, transparentRed ],
                  [ 0, 0.75, 1 ],
                  0, 0, 0,
                  0, 0, 100)
                .drawCircle(0, 0, 100);
为100px半径圆的径向渐变填充提供3种“停止”颜色(由2个阵列[solidRed,solidRed,transparentRed]和[0,0.75,1]指定):中心为纯红色,半径为75%时为纯红色,半径为透明红色

渐变将生成一个75px的圆圈,圆圈内填充实心红色,由一个光晕包围,光晕从75px的实心红色变为100px的完全透明红色

然后,您可以享受调整的乐趣:

  • 透明渐变开始时的阈值(第2个) 第二个数组的元素:接近0时会产生较大的模糊 轮廓,接近1,轮廓更清晰)
  • EaselJS形状的alpha值(现在,即使中心的实心圆也将是半透明的)
  • 如果你计划有多个圆圈重叠,你的EaselJS形状的合成操作(“打火机”将把颜色加在一起变成白色)
我混合使用了这三种技术来创建这个 用画架