canvas波浪效果怎么弄

canvas波浪效果怎么弄?這個問題可能是我們日常學習或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純热?,讓我們一起來看看吧?/p>

公司主營業(yè)務:成都網(wǎng)站設計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出源匯免費做網(wǎng)站回饋大家。

基于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>

感謝各位的閱讀!看完上述內容,你們對canvas波浪效果怎么弄大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前文章:canvas波浪效果怎么弄
URL地址:http://muchs.cn/article30/ihgiso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航標簽優(yōu)化、企業(yè)建站ChatGPT、建站公司、外貿(mào)網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站