您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何使用HTML5 Canvas繪制圓角矩形,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
圓角矩形是由四段線條和四個1/4圓弧組成,拆解如下。
因為我們要寫的是函數而不是一個固定的圓角矩形,所以這里列出的是函數需要的參數。分析好之后,直接敲出代碼。
JavaScript Code復制內容到剪貼板
<!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>
運行結果:
建議大家自己動手繪制一個圓角矩形,這樣有助于對路徑的掌握。
下面我們用這個函數來做點其他的事情。
繪制2048游戲界面
對代碼不做過多講解,大家自己研究研究,建議自己動手先嘗試寫一下。因為我這里采用的是硬編碼,所以不是很好,大家也可嘗試優化一下。
JavaScript Code復制內容到剪貼板
<!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>
運行結果:
這個圓角矩形的函數寫好之后,可以自己封裝進JS文件里,以后遇到什么好的函數都可以放進去,這樣積累下來,這個文件就是一套屬于自己的圖形庫和游戲引擎了,是不是非常的酷?
其實游戲制作是Canvas的主要用途,但是要知道每一個游戲設計師都是一個藝術家。
繪制微信對話框
大家可以嘗試著使用Canvas繪制一下微信聊天界面,作為練習與鞏固。
這里使用到了繪制矩形,繪制圓角矩形,繪制多線條圖形,填充顏色的一些知識。還有一些 Canvas文本API 我們并沒有說到,所以大家只要能繪制出一個大概的界面就算合格了。能夠繪制出來,也就基本掌握了Canvas API。
其實上述對話是生成出來的——“微信界面生成器網頁版”,可謂是微商神器。是不是非常的酷?
上述就是小編為大家分享的如何使用HTML5 Canvas繪制圓角矩形了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。