HTML5教程-用Canvas标签绘制矩形

本文教大家如何在canvas上绘制矩形,当你学会后,可以再举一反三的做一下练习。

注:本节内容,需要您有JS基础才能更好地理解。

绘制矩形的步骤:

1、在页面上创建一个canvas标签

首先在页面上建立一个canvas标签,因为我们所有的操作都要在canvas元素上完成。

2、使用js取得canvas元素

由于需要调用canvas给我们提供的对象方法来进行绘制图形,所以第二部要使用document.getElementById等方法取得canvas对象。

3、取得上下文

进行图形绘制时,需要用到图形上下文(graphics context),它是一个封装了很多绘图功能的对象。需要使用canvas对象的getContext方法来获得图形上下文graphics context。在draw函数中,将参数设置为"2D"。

注:您可能会想,“那可不可以把它设置为3D或者4D了呢?”,答案是,绝对不行。

 4、填充绘制边框

使用canvas元素绘制图形的时候,有两种方式——填充(fill)与绘制边框(stroke)。填充指的是填满图形内部;绘制边框是指不填满图形的内部,只绘制图形的外框。Canvas元素结合这两种方式来绘制图形。

如果到这里您还不理解的话,咱们使用CSS的方式来理解。

把绘制的图形看成div的话,CSS的border就是stroke,CSS的background就是fill,当这两个不存在的时候,canvas中就什么都没有,就好比一个空白透明的div。

5、设定绘图样式

再进行图形绘制的时候,首先要设定好绘图的样式(style),然后调用相关方法进行图形绘制。

6、指定线宽

使用canvas对象提供给我们的lineWidth属性设置图形边框的宽度,在绘制图形的时候,任何直线都可以通过lineWidth属性来指定直线的宽度。

7、指定颜色值

我们分别通过fillStyle属性和strokeStyle属性来制定颜色,它与我们在CSS中设置颜色一样,可以使用“red”、“blue”或者“#ff0000”这种十六进制的颜色值,也可以通过rgb(红色值,绿色值,蓝色值)和rgba(红色值,绿色值,蓝色值,透明度)来指定颜色。

8、绘制矩形

分别使用fillRect方法和strokeRect方法来填充矩形和绘制矩形的边框。

我们只要通过以上步骤,就可以绘制简单的图形了。

案例

1. <!DOCTYPE HTML> 
2. <html> 
3. <head> 
4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
5. <title>HTML5每日一练之Canvas标签的应用-绘制矩形</title> 
6. <script language="javascript" type="text/javascript"> 
7. window.onload = function() 
8.                 { 
9. canvas = $.getId("W3Cfuns_canvas") 
10. content = canvas.getContext("2d");//取得图形上下文 graphics context 
11.  
12. content.fillStyle = "#eeeeff";//填充canvas的背景颜色 
13.                         content.fillRect(0, 0, 400, 300);//参数分别表示 x轴,y轴,宽度,高度 
14. content.lineWidth = 1;//边框宽度 
15.                                  
16. content.strokeStyle = "#00f";//边框颜色 
17.                         content.strokeRect(50,50,100,100);//边框坐标及大小,试试这个后面的这个代码您就明白了content.strokeRect(50,50,150,150); 
18.  
19. content.fillStyle = "#f00";//矩形填充颜色 
20.                         content.fillRect(50,50,100,100);//矩形坐标及大小 
21.                                  
22.                 } 
23.                          
24.                 var $ = 
25.                 { 
26.                         getId:function(_id) 
27.                         { 
28.                                 return document.getElementById(_id); 
29.                         } 
30.                 } 
31. </script> 
32. </head> 
33.      
34. <body> 
35. <canvas id="W3Cfuns_canvas" width="400" height="300"></canvas> 
36. </body> 
37. </html>

运行结果如下图: