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

        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號
        主站蜘蛛池模板: 国产日韩精品中文字无码| 国产成人亚洲合集青青草原精品| 久久精品aⅴ无码中文字字幕重口| 91大神精品全国在线观看| 久久国产热精品波多野结衣AV| 精品露脸国产偷人在视频| 国产精品亚洲片在线va| 久久精品亚洲一区二区三区浴池 | 人妻无码久久精品| 国产精品美女久久久久av爽| 国产cosplay精品视频| 欧洲精品久久久av无码电影| 久久久久无码国产精品不卡| 国产精品99| 99久久99久久精品国产片果冻| 999精品视频这里只有精品| 亚洲国产精品无码久久久不卡| 日韩精品欧美| 热久久国产欧美一区二区精品| 国产日韩高清三级精品人成| 91精品视频在线| 91国内揄拍国内精品情侣对白| 国产精品电影在线观看| 国内精品久久久久影院日本| 日韩精品无码一区二区中文字幕| 日本五区在线不卡精品| 国产精品制服丝袜亚洲欧美| 99在线观看视频免费精品9| 四虎国产精品免费久久久| 精品国产自在在线在线观看| 91精品国产乱码久久久久久| 国产精品精品自在线拍| 国产伦精品免编号公布| 久久精品国产亚洲77777| 久久综合精品国产二区无码 | 国产VA免费精品高清在线| 国产精品九九久久免费视频 | 久久青青草原精品国产软件| 精品无人区无码乱码大片国产| 黑巨人与欧美精品一区| 精品一区二区三区在线观看 |