最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用feDisplacementMap+feImage濾鏡實(shí)現(xiàn)水波紋效果(計算動態(tài)值)

  發(fā)布時間:2022-04-24 15:32:38   作者:潑墨作山水   我要評論
這篇文章主要使用feDisplacementMap濾鏡實(shí)現(xiàn)水波紋效果(計算動態(tài)值),水波特效,是通過<feImage>標(biāo)簽 x,y,width,height四個屬性和<feDisplacementMap>標(biāo)簽scale動態(tài)變化實(shí)現(xiàn),主要記錄動效過程中各點(diǎn)的計算,需要的朋友可以參考下

該文章已經(jīng)講的特別細(xì)致了,該篇僅以此記錄動效過程中各點(diǎn)的計算。

1.feDisplacementMap

feDisplacementMap 實(shí)際上是一個位置替換濾鏡,就是改變元素和圖形的像素位置的。遍歷原圖形的所有像素點(diǎn),使用feDisplacementMap重新映射替換一個新的位置,形成一個新的圖形。feDisplacementMap濾鏡在業(yè)界的主流應(yīng)用是對圖形進(jìn)行形變,扭曲,液化。

P'(x,y) ← P( x + scale * (XC(x,y) - 0.5), y + scale * (YC(x,y) - 0.5))

· P'(x,y)指的是轉(zhuǎn)換之后的x, y坐標(biāo)。
· x + scale * (XC(x,y) - 0.5), y + scale * (YC(x,y) - 0.5)指的是具體的轉(zhuǎn)換規(guī)則。
· XC(x,y)表示當(dāng)前x,y坐標(biāo)像素點(diǎn)其X軸方向上設(shè)置的對應(yīng)通道的計算值,范圍是0~1。
· YC(x,y)表示當(dāng)前x,y坐標(biāo)像素點(diǎn)其Y軸方向上設(shè)置的對應(yīng)通道的計算值,范圍是0~1。
· -0.5是偏移值,因此XC(x,y) - 0.5范圍是-0.5~0.5,YC(x,y) - 0.5范圍也是-0.5~0.5。
· scale表示計算后的偏移值相乘的比例,scale越大,則偏移越大。

再用一句話解釋就是,根據(jù)設(shè)定的通道顏色對原圖的x, y坐標(biāo)進(jìn)行偏移。

默認(rèn)值 取值 說明
xChannelSelector A A or R or G or B 對應(yīng)XC(x,y),表示X軸坐標(biāo)使用的是哪個顏色通道進(jìn)行位置偏移
yChannelSelector A A or R or G or B 對應(yīng)YC(x,y),表示Y軸坐標(biāo)使用的是哪個顏色通道進(jìn)行位置偏移
color-interpolation-filters linearRGB linearRGB or sRGB 濾鏡對顏色進(jìn)行計算時候采用的顏色模式類型
scale 0 可正可負(fù) 縮放比例 通常使用正數(shù)值處理,值越大,偏移越大。
in SourceGraphic SourceGraphic,SourceAlpha,BackgroundImage, BackgroundAlpha,F(xiàn)illPaint,StrokePaint,以及自定義的濾鏡的原始引用 原始圖形
in2 元素的result屬性值 同in 用來映射的圖形

2.通過feDisplacementMap和feImage實(shí)現(xiàn)水波特效

實(shí)現(xiàn)水波效果通常使用下圖

<svg id='svg' width="400" height="400" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <filter id="filter-ripple" primitiveUnits='objectBoundingBox'>
            <feImage id='feImage' result="pict2" xlink:href="上述圖片地址"  x="0" y="0" width="100%" height="100%"></feImage>
            <feDisplacementMap id='displacement-map' result='ok' scale="0" xChannelSelector="R" yChannelSelector="G" in2="pict2" in="SourceGraphic" color-interpolation-filters="sRGB"></feDisplacementMap>
            <feComposite operator="in" in2="pict2"></feComposite>
            <feComposite in2="SourceGraphic"></feComposite> //這個的目的是因為添加濾鏡的元素可見區(qū)域和feImage元素的大小一致。融合原有元素保證整個元素都可見
        </filter>
    </defs>
</svg>

水波特效,是通過<feImage>標(biāo)簽 x,y,width,height四個屬性和<feDisplacementMap>標(biāo)簽scale動態(tài)變化實(shí)現(xiàn)。
就像漣漪,以石子掉落處為中心,范圍由小擴(kuò)大,起伏由強(qiáng)減弱。 轉(zhuǎn)為代碼,也就是width,height由小變大,scale由大變小
根據(jù)點(diǎn)擊事件,可以計算出中心坐標(biāo)(pointX,pointY)

在擴(kuò)散過程中,中心坐標(biāo)不變,x,y為圖片的起始坐標(biāo)
pointX = width/2 + x ;pointY = height/2 + y => x = pointX - width/2; y = pointY - height/2
width,height,scale的最大值就可以根據(jù)需求來設(shè)置啦~

參考資料

https://www.zhangxinxu.com/wordpress/2017/12/understand-svg-fedisplacementmap-filter/

到此這篇關(guān)于使用feDisplacementMap+feImage濾鏡實(shí)現(xiàn)水波紋效果(計算動態(tài)值)的文章就介紹到這了,更多相關(guān)feDisplacementMap濾鏡水波紋內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • HTML5實(shí)現(xiàn)的移動端購物車自動結(jié)算功能示例代碼

    本文介紹HTML5實(shí)現(xiàn)移動端購物車自動結(jié)算,通過WebStorage、事件監(jiān)聽、DOM操作等技術(shù),確保實(shí)時更新與數(shù)據(jù)同步,優(yōu)化性能及無障礙性,提升用戶體驗,感興趣的朋友一起看看吧
    2025-06-18
  • HTML5 中的<button>標(biāo)簽用法和特征

    在HTML5中,<button>標(biāo)簽用于定義一個可點(diǎn)擊的按鈕,它是創(chuàng)建交互式網(wǎng)頁的重要元素之一,本文將深入解析HTML5中的<button>標(biāo)簽,詳細(xì)介紹其屬性、樣式以及實(shí)際
    2025-06-18
  • 基于 HTML5 Canvas 實(shí)現(xiàn)圖片旋轉(zhuǎn)與下載功能(完整代碼展示)

    本文將深入剖析一段基于 HTML5 Canvas 的代碼,該代碼實(shí)現(xiàn)了圖片的旋轉(zhuǎn)(90 度和 180 度)以及旋轉(zhuǎn)后圖片的下載功能,通過對代碼的解讀,我們可以學(xué)習(xí)到如何利用 Canvas API
    2025-06-18
  • HTML5 getUserMedia API網(wǎng)頁錄音實(shí)現(xiàn)指南示例小結(jié)

    本教程將指導(dǎo)你如何利用這一API,結(jié)合Web Audio API,實(shí)現(xiàn)網(wǎng)頁錄音功能,從獲取音頻流到處理和保存錄音,整個過程將逐步詳解,此外,還討論了getUserMedia API的使用限制和最
    2025-06-16
  • HTML5 搜索框Search Box詳解

    HTML5的搜索框是一個強(qiáng)大的工具,能夠有效提升用戶體驗,通過結(jié)合自動補(bǔ)全功能和適當(dāng)?shù)臉邮?,可以?chuàng)建出既美觀又實(shí)用的搜索界面,這篇文章給大家介紹HTML5 搜索框Search Box
    2025-06-13
  • 全面解析HTML5中Checkbox標(biāo)簽

    Checkbox是HTML5中非常重要的表單元素之一,通過合理使用其屬性和樣式自定義方法,可以為用戶提供豐富多樣的交互體驗,這篇文章給大家介紹HTML5中Checkbox標(biāo)簽的深入全面解
    2025-06-13
  • HTML5無插件拖拽圖片上傳功能實(shí)現(xiàn)過程

    本實(shí)例展示了一種基于HTML5技術(shù)的圖片上傳功能,無需外部插件即可通過拖放圖片實(shí)現(xiàn)上傳,涉及到HTML5的拖放API和File API,以及使用CSS來增強(qiáng)用戶界面的交互性和視覺反饋,
    2025-05-16
  • HTML5 定位大全之相對定位、絕對定位和固定定位

    在HTML5和CSS中,定位(positioning)是控制元素在頁面上位置的重要機(jī)制,主要有四種定位方式:靜態(tài)定位(static)、相對定位(relative)、絕對定位(absolute)和固定定位(fixed),
    2025-05-13
  • HTML5中的Microdata與歷史記錄管理詳解

    Microdata作為HTML5新增的一個特性,它允許開發(fā)者在HTML文檔中添加更多的語義信息,以便于搜索引擎和瀏覽器更好地理解頁面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及
    2025-04-21
  • HTML5表格語法格式詳解

    在HTML語法中,表格主要通過< table >、< tr >和< td >3個標(biāo)簽構(gòu)成,本文通過實(shí)例代碼講解HTML5表格語法格式,感興趣的朋友一起看看吧
    2025-04-21

最新評論

兴山县| 会东县| 抚宁县| 遂平县| 句容市| 东台市| 金沙县| 汝阳县| 比如县| 江门市| 沽源县| 涟水县| 枣庄市| 太和县| 枝江市| 林西县| 临夏县| 四子王旗| 余江县| 绿春县| 榆林市| 恩施市| 华坪县| 绵竹市| 景德镇市| 茶陵县| 循化| 达拉特旗| 镇沅| 东台市| 五台县| 新化县| 余江县| 托克托县| 滦平县| 临沧市| 罗山县| 商城县| 敦化市| 共和县| 苍南县|