校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > canvas多重陰影發光效果實現

canvas多重陰影發光效果實現

熱門標簽:江西ai電銷機器人如何 地圖標注員工作內容 西安金倫外呼系統 威海語音外呼系統平臺 高德地圖標注廁所 地圖標注沿海城市房價 智能語音電銷機器人客戶端 中國地圖標注城市的 通遼地圖標注app

前言

在一個項目中,客戶提了一個發光的效果,效果圖如下:
 

陰影

有的人可能會說,這個用陰影其實就可以實現。但是從圖中可以看出,是一個比較強烈的發光效果。實際的應用過程中我們會發現用簡單陰影參數實現的效果很難達到這樣強烈的發光效果。
比如

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 表示陰影半徑。當陰影半徑比較大的時候,陰影的擴散程度會比較大,但陰影的強烈度不夠。在陰影的半徑比較小的時候,陰影的強烈度是夠的,但陰影的擴散程度會比較小。

多重陰影

如何達到具有較強的陰影強度,又有較好的陰影擴散度呢?也就是實現這種比較強烈的發光效果。嗯,答案就是使用多重陰影效果。

所謂多重陰影效果,使用陰影效果對圖形進行多次繪制,多次繪制的過程中,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();

從代碼中我們可以看出我們多次使用了陰影的繪制啊,最終的繪制效果如下圖所示。

從圖中可以看出, 陰影有較好的擴散程度,也有較好的強烈度。

下面是用多重陰影實現的文字霓虹燈效果,同樣可以看出有較好的發光效果。

總結

可以看出要達到強烈的發光效果, 需要使用多重陰影功能。當然使用多種陰影也不是沒有限制的, 因為陰影本身有很大的性能損耗。通過嘗試我們發現一般3~5次之間就能夠達到較好的效果吧。

到此這篇關于canvas多重陰影發光效果實現的文章就介紹到這了,更多相關canvas多重陰影發光內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:營口 崇左 晉中 河池 阜陽 青海 眉山 北海

巨人網絡通訊聲明:本文標題《canvas多重陰影發光效果實現》,本文關鍵詞  canvas,多重,陰影,發光,效果,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《canvas多重陰影發光效果實現》相關的同類信息!
  • 本頁收集關于canvas多重陰影發光效果實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 赤峰市| 普安县| 霞浦县| 合江县| 米易县| 原平市| 万山特区| 吉安县| 丹凤县| 宜春市| 沂水县| 监利县| 潜江市| 阿巴嘎旗| 鄂托克旗| 登封市| 苍梧县| 石首市| 墨竹工卡县| 海安县| 衡阳县| 兖州市| 三原县| 安泽县| 侯马市| 辽阳市| 收藏| 兰州市| 崇明县| 保定市| 含山县| 永安市| 赤水市| 武冈市| 射阳县| 江口县| 大城县| 嘉善县| 偃师市| 阳东县| 玛纳斯县|