canvas 发光,

  canvas 发光,

  

前言

  在一个项目中,客户提出了一种发光效果。效果图如下:

  

阴影

  有人可能会说这其实可以用阴影来实现。但从图中可以看出,是比较强的发光效果。在实际应用过程中,我们会发现单纯的阴影参数很难达到如此强烈的发光效果。

  例如

  ctx.shadowColor=rgba(255,0,0,1);ctx.shadowBlur=10ctx.shadowOffsetX=10ctx.shadowOffsetY=10ctx.fillStyle=rgba(0,0,255,1.0);ctx.fillRect(100,100,200,100);

  在简单阴影效果下,shadowBlur表示阴影半径。当阴影半径较大时,阴影扩散的程度会较大,但阴影的强度不够。当阴影的半径比较小时,阴影的强度是足够的,但是阴影的扩散程度会比较小。

  

多重阴影

  如何实现阴影强度强,阴影扩散好?也就是为了达到这种比较强的发光效果。嗯,答案是使用多重阴影效果。

  所谓多阴影效果,就是利用阴影效果多次绘制图形。在多次绘制的过程中,shadowBlur的值会有所不同,可以形成多个阴影重叠的效果。

  下面是一个简单的例子,代码如下。

  ctx.shadowColor=rgba(255,255,0,1);ctx.shadowBlur=20ctx.shadowOffsetX=10100ctx.shadowOffsetY=10100CTX . begin path();ctx.fillStyle=rgba(0,0,255,1.0);ctx.arc(-10000,-10000,50,0,数学。PI * 2);CTX . fill();ctx.shadowColor=rgba(255,0,0,1);ctx.shadowBlur=20ctx.shadowOffsetX=10100ctx.shadowOffsetY=10100CTX . begin path();ctx.fillStyle=rgba(0,0,255,1.0);ctx.arc(-10000,-10000,30,0,数学。PI * 2);CTX . fill();从代码中我们可以看到我们多次使用阴影绘制,最终的绘制效果如下图所示。

  从图中可以看出,阴影的扩散度很好,强度也很好。

  下面是多重阴影实现的文字霓虹效果,也可以看出它有很好的发光效果。

  

总结

  可以看出,要达到很强的发光效果,需要多阴影功能。当然,多重阴影的使用并不是无限制的,因为阴影本身就有很大的性能损失。通过尝试,我们发现通常需要3~5次才能达到良好的效果。

  这就是这篇关于画布多阴影发光效果实现的文章。更多相关画布多阴影夜光内容,请搜索往期文章或继续浏览下方相关文章。希望你以后能支持我!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: