您好,登錄后才能下訂單哦!
小編給大家分享一下H5的CanvasAPI如何繪制圖形,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
Canvas元素
以下html代碼定義了一個canvas元素。
<!DOCTYPE html> <html> <head> <title>Canvas快速入門</title> <meta charset="utf-8"/> </head> <body> <div> <canvas id="mainCanvas" width="640" height="480"></canvas> </div> </body> </html>
通過以下Javascript語句訪問canvas元素:
//DOM寫法 window.onload = function () { var canvas = document.getElementById("mainCanvas"); var context = canvas.getContext("2d"); }; //jQuery寫法 $(document).ready(function () { var canvas = $("#mainCanvas"); var context = canvas.get(0).getContext("2d"); }); //接下來就可以調(diào)用context的方法來調(diào)用繪圖API
2. 基礎(chǔ)API
2.1 坐標(biāo)系統(tǒng)
Canvas 2D渲染上下文采用平面笛卡爾坐標(biāo)系統(tǒng),左上角為原點(0,0),坐標(biāo)系統(tǒng)的1個單位相當(dāng)于屏幕的1個像素。
//繪制一個填充矩形 context.fillRect(x, y, width, height) //繪制一個邊框矩形 context.strokeRect(x, y, width, height) //清除一個矩形區(qū)域 context.clearRect(x, y, width, height)
2.2.2 線條
繪制線條與繪制圖形有一些區(qū)別,線條實際上稱為路徑。要繪制一條簡單的路徑,首先必須調(diào)用beginPath方法,接著調(diào)用moveTo設(shè)置路徑的起點坐標(biāo),然后調(diào)用lineTo設(shè)置線段終點坐標(biāo)(可多次設(shè)置),再調(diào)用closePath完成路徑繪制。最后調(diào)用stroke繪制輪廓(或調(diào)用fill填充路徑)。以下為例子:
//示例 context.beginPath(); //開始路徑 context.moveTo(40, 40); //移動到點(40,40) context.lineTo(300, 40); //畫線到點(300,30) context.lineTo(40, 300); //畫線到點(40,300) context.closePath(); //結(jié)束路徑 context.stroke(); //繪制輪廓 //或者填充用context.fill();
2.2.3 圓形
Canvas實際上并沒有專門繪制圓形的方法,可以通過畫圓弧來模擬圓形。由于圓弧是一種路徑,所以畫圓弧的API應(yīng)該包含在beginPath和closePath之間。
2.3 樣式
2.3.1 修改線條顏色
var color; //指定RGB值 color = "rgb(255, 0, 0)"; //指定RGBA值(最后一個參數(shù)為alpha值,取值0.0~1.0) color = "rgba(255, 0, 0, 1)"; //指定16進制碼 color = "#FF0000"; //用單詞指定 color = "red"; //設(shè)置填充顏色 context.fillStyle = color; //設(shè)置邊框顏色 context.strokeStyle = color;
2.3.2 修改線寬
//指定線寬值 var value= 3; //設(shè)置邊框顏色 context.linewidth = value;
2.4 繪制文本
//指定字體樣式
context.font = "italic 30px 黑體";
//在點(40,40)處畫文字
context.fillText("Hello world!", 40, 40);
看完了這篇文章,相信你對H5的CanvasAPI如何繪制圖形有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。