站長資訊網
        最全最豐富的資訊網站

        canvas波浪效果的實現代碼

        本篇文章給大家帶來的內容是關于canvas波浪效果的實現代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        基于canvas的三次貝塞爾曲線(bezierCurveTo)

        <canvas id="myCanvas"></canvas>  <script>     var WAVE_HEIGHT = 200 //波浪變化高度     var SCALE = 0.5 // 繪制速率     var CYCLE = 360 / SCALE     var TIME = 0      function initCanvas() {         var c = document.getElementById("myCanvas")         var width = window.screen.width         var height = window.screen.height          var ctx = c.getContext("2d")         c.width = width         c.height = height          // start         window.requestAnimationFrame(function() {             draw(ctx, width, height)         })     }      function draw(ctx, width, height) {         ctx.clearRect(0, 0, width, height)          TIME = (TIME + 1) % CYCLE         var angle = SCALE * TIME // 當前正弦角度         var dAngle = 60 // 兩個波峰相差的角度          ctx.beginPath()         ctx.moveTo(0, height * 0.5 + distance(WAVE_HEIGHT, angle, 0))         ctx.bezierCurveTo(             width * 0.4,             height * 0.5 + distance(WAVE_HEIGHT, angle, dAngle),             width * 0.6,             height * 0.5 + distance(WAVE_HEIGHT, angle, 2 * dAngle),             width,             height * 0.5 + distance(WAVE_HEIGHT, angle, 3 * dAngle)         )         ctx.strokeStyle = "#ff0000"         ctx.stroke()          ctx.beginPath()         ctx.moveTo(0, height * 0.5 + distance(WAVE_HEIGHT, angle, -30))         ctx.bezierCurveTo(             width * 0.3,             height * 0.5 + distance(WAVE_HEIGHT, angle, dAngle - 30),             width * 0.7,             height * 0.5 + distance(WAVE_HEIGHT, angle, 2 * dAngle - 30),             width,             height * 0.5 + distance(WAVE_HEIGHT, angle, 3 * dAngle - 30)         )         ctx.strokeStyle = "#0000ff"         ctx.stroke()          function distance(height, currAngle, diffAngle) {             return height * Math.cos((((currAngle - diffAngle) % 360) * Math.PI) / 180)         }          // animate         window.requestAnimationFrame(function() {             draw(ctx, width, height)         })     }      initCanvas() </script>

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 无码人妻精品一区二区三区99不卡| 无码精品人妻一区二区三区漫画 | 国产亚洲精品高清在线| 国产精品免费无遮挡无码永久视频| 人人妻人人澡人人爽精品欧美 | 国产精品 码ls字幕影视| 国产精品丝袜黑色高跟鞋| 亚洲精品国产成人影院| 国产精品尹人在线观看| 亚洲精品天天影视综合网| 成人精品综合免费视频| 久久国产欧美日韩精品| 亚洲Av永久无码精品三区在线| 久久久久成人精品无码| 国产精品成人观看视频网站| 精品国产一区二区三区久久| 91精品国产91久久综合| 国产精品三级国产电影| 久久久无码人妻精品无码| 亚洲一区二区三区在线观看精品中文| 久久99精品久久久久久野外| 精品人妻系列无码人妻免费视频| 国产精品热久久无码av| 99热精品毛片全部国产无缓冲| 黑人精品videos亚洲人| 99麻豆久久久国产精品免费| 国产精品熟女一区二区| 99精品久久久久中文字幕| 国产成人精品视频一区二区不卡 | 亚洲愉拍99热成人精品热久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 夜夜高潮夜夜爽国产伦精品| 精品精品国产理论在线观看| 国产999精品久久久久久| 国产在线不卡午夜精品2021| 久久精品国产亚洲一区二区| 欧美一区二区精品久久| 91av国产精品| 国产一区精品| 亚洲国产精品自产在线播放 | 精品久久久久久久无码|