canvas多重陰影發(fā)光效果實(shí)現(xiàn)

前言
在一個項(xiàng)目中,客戶提了一個發(fā)光的效果,效果圖如下:
陰影
有的人可能會說,這個用陰影其實(shí)就可以實(shí)現(xiàn)。但是從圖中可以看出,是一個比較強(qiáng)烈的發(fā)光效果。實(shí)際的應(yīng)用過程中我們會發(fā)現(xiàn)用簡單陰影參數(shù)實(shí)現(xiàn)的效果很難達(dá)到這樣強(qiáng)烈的發(fā)光效果。
比如
ctx.shadowColor = 'rgba(255,0,0,1)'; ctx.shadowBlur =10; ctx.shadowOffsetX = 10; ctx.shadowOffsetY = 10; ctx.fillStyle = 'rgba(0,0,255,1.0)'; ctx.fillRect(100,100,200,100);
簡單的陰影效果下,shadowBlur 表示陰影半徑。當(dāng)陰影半徑比較大的時候,陰影的擴(kuò)散程度會比較大,但陰影的強(qiáng)烈度不夠。在陰影的半徑比較小的時候,陰影的強(qiáng)烈度是夠的,但陰影的擴(kuò)散程度會比較小。
多重陰影
如何達(dá)到具有較強(qiáng)的陰影強(qiáng)度,又有較好的陰影擴(kuò)散度呢?也就是實(shí)現(xiàn)這種比較強(qiáng)烈的發(fā)光效果。嗯,答案就是使用多重陰影效果。
所謂多重陰影效果,使用陰影效果對圖形進(jìn)行多次繪制,多次繪制的過程中,shadowBlur的值會不一樣,這樣可以形成多個陰影疊加的效果。
下面是一個簡單的示例,代碼如下。
ctx.shadowColor = 'rgba(255,255,0,1)'; ctx.shadowBlur = 20; ctx.shadowOffsetX = 10100; ctx.shadowOffsetY = 10100; ctx.beginPath(); ctx.fillStyle = 'rgba(0,0,255,1.0)'; ctx.arc(-10000, -10000, 50, 0, Math.PI * 2); ctx.fill(); ctx.shadowColor = 'rgba(255,0,0,1)'; ctx.shadowBlur = 20; ctx.shadowOffsetX = 10100; ctx.shadowOffsetY = 10100; ctx.beginPath(); ctx.fillStyle = 'rgba(0,0,255,1.0)'; ctx.arc(-10000, -10000, 30, 0, Math.PI * 2); ctx.fill();
從代碼中我們可以看出我們多次使用了陰影的繪制啊,最終的繪制效果如下圖所示。
從圖中可以看出, 陰影有較好的擴(kuò)散程度,也有較好的強(qiáng)烈度。
下面是用多重陰影實(shí)現(xiàn)的文字霓虹燈效果,同樣可以看出有較好的發(fā)光效果。
總結(jié)
可以看出要達(dá)到強(qiáng)烈的發(fā)光效果, 需要使用多重陰影功能。當(dāng)然使用多種陰影也不是沒有限制的, 因?yàn)殛幱氨旧碛泻艽蟮男阅軗p耗。通過嘗試我們發(fā)現(xiàn)一般3~5次之間就能夠達(dá)到較好的效果吧。
到此這篇關(guān)于canvas多重陰影發(fā)光效果實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)canvas多重陰影發(fā)光內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 這篇文章主要介紹了canvas 陰影和圖形變換的示例代碼的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-02
- <canvas></canvas>是HTML5中新增的標(biāo)簽,用于繪制圖形,這篇文章主要為大家詳細(xì)介紹了HTML5 canvas基本繪圖之繪制陰影方法,感興趣的小伙伴們可以參考一下2016-06-27
實(shí)例講解使用HTML5 Canvas繪制陰影效果的方法
這篇文章主要介紹了使用HTML5 Canvas繪制陰影效果的方法,包括一個3D拉影+邊緣模糊效果文字的編寫例子,在陰影效果的利用上進(jìn)一步深入,需要的朋友可以參考下2016-03-25html5實(shí)現(xiàn)canvas陰影效果示例
這篇文章主要介紹了html5實(shí)現(xiàn)canvas陰影效果示例2014-05-07- HTML5 Canvas中提供了設(shè)置陰影的四個屬性值可以實(shí)現(xiàn)陰影文字、3D拉影效果、邊緣模糊效果文字,具體的演示代碼如下,想學(xué)習(xí)的朋友可以參考下2013-08-02