中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用HTML5Canvas繪制圓角矩形

發布時間:2021-09-15 15:52:55 來源:億速云 閱讀:168 作者:柒染 欄目:web開發

這期內容當中小編將會給大家帶來有關如何使用HTML5 Canvas繪制圓角矩形,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

圓角矩形是由四段線條和四個1/4圓弧組成,拆解如下。
如何使用HTML5Canvas繪制圓角矩形

因為我們要寫的是函數而不是一個固定的圓角矩形,所以這里列出的是函數需要的參數。分析好之后,直接敲出代碼。

JavaScript Code復制內容到剪貼板

  1. <!DOCTYPE html>   
    <html lang="zh">   
    <head>   
        <meta charset="UTF-8">   
        <title>圓角矩形</title>   
        <style>   
            body { background: url("./images/bg3.jpg") repeat; }  
            #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
        </style>   
    </head>   
    <body>   
    <div id="canvas-warp">   
        <canvas id="canvas">   
            你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
        </canvas>   
    </div>   
      
    <script>   
        window.onload = function(){   
            var canvas = document.getElementById("canvas");   
            canvas.width = 800;   
            canvas.height = 600;   
            var context = canvas.getContext("2d");   
            context.fillStyle = "#FFF";   
            context.fillRect(0,0,800,600);   
      
            drawRoundRect(context, 200, 100, 400, 400, 50);   
            context.strokeStyle = "#0078AA";   
            context.stroke();   
        }   
      
        function drawRoundRect(cxt, x, y, width, height, radius){   
            cxt.beginPath();   
            cxt.arc(x + radius, y + radius, radius, Math.PI, Math.PI * 3 / 2);   
            cxt.lineTo(width - radius + x, y);   
            cxt.arc(width - radius + x, radius + y, radius, Math.PI * 3 / 2, Math.PI * 2);   
            cxt.lineTo(width + x, height + y - radius);   
            cxt.arc(width - radius + x, height - radius + y, radius, 0, Math.PI * 1 / 2);   
            cxt.lineTo(radius + x, height +y);   
            cxt.arc(radius + x, height - radius + y, radius, Math.PI * 1 / 2, Math.PI);   
            cxt.closePath();   
        }   
    </script>   
    </body>   
    </html>

運行結果:
如何使用HTML5Canvas繪制圓角矩形

建議大家自己動手繪制一個圓角矩形,這樣有助于對路徑的掌握。

下面我們用這個函數來做點其他的事情。

繪制2048游戲界面
對代碼不做過多講解,大家自己研究研究,建議自己動手先嘗試寫一下。因為我這里采用的是硬編碼,所以不是很好,大家也可嘗試優化一下。

JavaScript Code復制內容到剪貼板

  1. <!DOCTYPE html>   
    <html lang="zh">   
    <head>   
        <meta charset="UTF-8">   
        <title>2048游戲界面</title>   
        <style>   
            body { background: url("./images/bg3.jpg") repeat; }  
            #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
        </style>   
    </head>   
    <body>   
    <div id="canvas-warp">   
        <canvas id="canvas">   
            你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   
        </canvas>   
    </div>   
      
    <script>   
        window.onload = function(){   
            var canvas = document.getElementById("canvas");   
            canvas.width = 800;   
            canvas.height = 600;   
            var context = canvas.getContext("2d");   
            context.fillStyle = "#FFF";   
            context.fillRect(0,0,800,600);   
      
            drawRoundRect(context, 200, 100, 400, 400, 5);   
            context.fillStyle = "#AA7B41";   
            context.strokeStyle = "#0078AA";   
            context.stroke();   
            context.fill();   
      
            for(var i = 1; i <= 4; i++){   
                for(var j = 1; j <= 4; j++){   
                    drawRoundRect(context, 200 + 16 * i + 80 * (i - 1), 100 + 16 * j + 80 * (j - 1), 80, 80, 5);   
                    context.fillStyle = "#CCBFB4";   
                    context.strokeStyle = "#0078AA";   
                    context.stroke();   
                    context.fill();   
                }   
            }   
        }   
      
        function drawRoundRect(cxt, x, y, width, height, radius){   
            cxt.beginPath();   
            cxt.arc(x + radius, y + radius, radius, Math.PI, Math.PI * 3 / 2);   
            cxt.lineTo(width - radius + x, y);   
            cxt.arc(width - radius + x, radius + y, radius, Math.PI * 3 / 2, Math.PI * 2);   
            cxt.lineTo(width + x, height + y - radius);   
            cxt.arc(width - radius + x, height - radius + y, radius, 0, Math.PI * 1 / 2);   
            cxt.lineTo(radius + x, height +y);   
            cxt.arc(radius + x, height - radius + y, radius, Math.PI * 1 / 2, Math.PI);   
            cxt.closePath();   
        }   
    </script>   
    </body>   
    </html>

運行結果:
如何使用HTML5Canvas繪制圓角矩形

這個圓角矩形的函數寫好之后,可以自己封裝進JS文件里,以后遇到什么好的函數都可以放進去,這樣積累下來,這個文件就是一套屬于自己的圖形庫和游戲引擎了,是不是非常的酷?

其實游戲制作是Canvas的主要用途,但是要知道每一個游戲設計師都是一個藝術家。


繪制微信對話框
大家可以嘗試著使用Canvas繪制一下微信聊天界面,作為練習與鞏固。
如何使用HTML5Canvas繪制圓角矩形

這里使用到了繪制矩形,繪制圓角矩形,繪制多線條圖形,填充顏色的一些知識。還有一些 Canvas文本API 我們并沒有說到,所以大家只要能繪制出一個大概的界面就算合格了。能夠繪制出來,也就基本掌握了Canvas API。

其實上述對話是生成出來的&mdash;&mdash;“微信界面生成器網頁版”,可謂是微商神器。是不是非常的酷?
如何使用HTML5Canvas繪制圓角矩形

上述就是小編為大家分享的如何使用HTML5 Canvas繪制圓角矩形了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大港区| 商水县| 新沂市| 启东市| 通山县| 四子王旗| 墨玉县| 民和| 黄平县| 荔浦县| 扬州市| 兰溪市| 宣武区| 来凤县| 司法| 新巴尔虎右旗| 琼结县| 丽水市| 郸城县| 白银市| 寿宁县| 龙门县| 舟曲县| 苗栗市| 翼城县| 黄骅市| 石楼县| 隆化县| 靖州| 洱源县| 江达县| 常德市| 新化县| 星子县| 铜山县| 手游| 康定县| 西平县| 海兴县| 武定县| 闵行区|