使用HTML5 canvas繪制一個(gè)矩形的方法:首先創(chuàng)建相應(yīng)的HTML示例文件;然后通過Canvas上下文的rect方法實(shí)現(xiàn)繪制一個(gè)矩形,代碼語(yǔ)句如“canvas.getContext('2d');”。
使用HTML5 canvas繪制一個(gè)矩形,我們需要用到Canvas上下文的rect()方法。接下來(lái)我們就來(lái)看看具體的代碼實(shí)現(xiàn)。
我們來(lái)看一個(gè)具體的例子
代碼如下
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> <script type="text/javascript"> function draw() { var canvas = document.getElementById('SimpleCanvas'); if ( ! canvas || ! canvas.getContext ) { return false; } var cx = 360; var cy = 400; var radius = 36; var context = canvas.getContext('2d'); context.beginPath(); context.rect(240, 80, 160, 80); context.fillStyle = 'peachpuff'; context.fill(); context.lineWidth = 2; context.strokeStyle = 'coral'; context.stroke(); } </script> </head> <body onload="draw()" style="background-color:#D0D0D0;"> <canvas id="SimpleCanvas" width="640" height="480" style="background-color:#FFFFFF;"></canvas> <div>Canvas Demo</div> </body> </html>
說明:
由document.getElementById()方法獲取Canves對(duì)象,Canves對(duì)象通過調(diào)用getContext()方法,用于獲取畫布上下文的過程是與在畫布上繪制時(shí)共同處理的。
調(diào)用上下文的beginPath()方法來(lái)啟動(dòng)路徑。用rect()繪制一個(gè)矩形。rect的第一個(gè)參數(shù)和的第二個(gè)參數(shù)是矩形左上角的X,Y坐標(biāo)。第三個(gè)參數(shù)是繪制矩形的寬度,第四個(gè)參數(shù)是繪制矩形的高度。
使用fill()方法填充內(nèi)部并使用stroke方法繪制輪廓線。
運(yùn)行結(jié)果
使用Web瀏覽器執(zhí)行創(chuàng)建的HTML文件。將顯示如下所示的效果。
上述示例的矩形填充了內(nèi)部,下面我們來(lái)看看沒有內(nèi)部填充的矩形
代碼如下
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> <style type="text/css"> <!-- /*背景色和背景圖*/ .canvas{ background-color:#FFFFFF; background-image: url("img/t.jpg"); } --> </style> <script type="text/javascript"> function draw() { var canvas = document.getElementById('SimpleCanvas'); if ( ! canvas || ! canvas.getContext ) { return false; } var cx = 360; var cy = 400; var radius = 36; var context = canvas.getContext('2d'); context.beginPath(); context.rect(240, 80, 160, 80); context.lineWidth = 4; context.strokeStyle = 'coral'; context.stroke(); } </script> </head> <body onload="draw()" style="background-color:#D0D0D0;"> <canvas id="SimpleCanvas" width="640" height="480" class="canvas"></canvas> <div>Canvas Demo</div> </body> </html>
說明:在繪制圖像時(shí),如果不調(diào)用fill()方法,只執(zhí)行stroke()方法,就能繪制內(nèi)部不填充的矩形。
運(yùn)行結(jié)果
在瀏覽器上顯示如下效果
最后我們來(lái)看直接填充內(nèi)部的矩形繪制
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> <script type="text/javascript"> function draw() { var canvas = document.getElementById('SimpleCanvas'); if ( ! canvas || ! canvas.getContext ) { return false; } var cx = 360; var cy = 400; var radius = 36; var context = canvas.getContext('2d'); context.beginPath(); context.rect(260, 120, 220, 120); context.fillStyle = 'burlywood'; context.fill(); } </script> </head> <body onload="draw()" style="background-color:#D0D0D0;"> <canvas id="SimpleCanvas" width="640" height="480" style="background-color:#FFFFFF;"></canvas> <div>Canvas Demo</div> </body> </html>
運(yùn)行結(jié)果如下所示