HTML5入门

跟KingDZ学HTML5之四:继续探究Canvas之路径

字号+ 作者: 来源: 2014-11-16 20:49 我要评论( )

哈哈,开始吧,这节课第一个内容是路径。路径,顾名思义,就是俺拿着画笔,划线呗。 画图的几个步骤。 第一步:找个起点开始画图。----beginPath; 第二步:划线,画出自己想要的图

哈哈,开始吧,这节课第一个内容是 路径。路径,顾名思义,就是俺拿着画笔,划线呗。

画图的几个步骤。

第一步:找个起点开始画图。----beginPath;

第二步:划线,画出自己想要的图像 。

第三步:完成图形,关闭路径。 当然也可以什么都不做,就是画一个点或者一条线   ----- closePath

第四步:填颜色。

哈哈,对不对啊,俺上小学,美术老师就是这么教的。

好了,先随便画一个图形吧。---画一条线,(*^__^*) 嘻嘻……

JavaScript Code复制内容到剪贴板
  1. <script type="text/javascript">  
  2.         function draw() {  
  3.             var c = document.getElementById("mycanvas");  
  4.             var cxt = c.getContext("2d");  
  5.             cxt.beginPath();  
  6.             cxt.moveTo(10, 10);  
  7.             cxt.lineTo(100, 10);  
  8.             cxt.stroke();  
  9.         }  
  10.     </script>  
效果图

11 
好了,一条线画完了,我们简单的说一下

moveTo 是一个十分有用的方法,它是绘制路径的实用方法的一部分。

你可以把它想象成是把笔提起,并从一个点移动到另一个点的过程。

lineTo  当然是划线了啊

括号中的那两个参数,相当于坐标。

最后一步,

调用 stroke或 fill 方法,这步结束之后。

图形才是实际的绘制到 canvas上去。

stroke是绘制图形的边框,fill会用填充出一个实心图形。当调用 fill 时,开放的路径会自动闭合,而无须调用 closePath ,这需要大家注意。

好了,有了上面的这两句话,我们就画一个  等边直角三角形 吧

JavaScript Code复制内容到剪贴板
  1. <script type="text/javascript">  
  2.         function draw() {  
  3.             var c = document.getElementById("mycanvas");  
  4.             var cxt = c.getContext("2d");  
  5.             cxt.beginPath();  
  6.             cxt.moveTo(10, 10);  
  7.             cxt.lineTo(100, 10);  
  8.             cxt.lineTo(100, 100);  
  9.             cxt.fill();  
  10.         }  
  11.     </script>  

1

当然,你要最后用 stroke() 就不得不这么做了

JavaScript Code复制内容到剪贴板
  1. function draw() {  
  2.         var c = document.getElementById("mycanvas");  
  3.         var cxt = c.getContext("2d");  
  4.         cxt.beginPath();  
  5.         cxt.moveTo(10, 10);  
  6.         cxt.lineTo(100, 10);  
  7.         cxt.lineTo(100, 100);  
  8.         cxt.lineTo(10, 10);  
  9.         cxt.stroke();  
  10.     }  

1

呵呵,好玩不????

然后我们继续吧,下面画一个圆形。

arc 方法是来绘制弧线或圆。

JavaScript Code复制内容到剪贴板
  1. arc(x, y, radius, startAngle, endAngle, anticlockwise)   
  2. arc(x, y, radius, startAngle, endAngle, anticlockwise)  

该方法接受五个参数:

1、x,y 是圆心坐标; 
2、radius 是半径; 
3、startAngle是起弧度(以 x 轴为基准); 
4、endAngle 是末弧度(以 x 轴为基准); 
5、anticlockwise 为 true 表示逆时针,反之顺时针。

好了,工作贮备好了,继续吧,

JavaScript Code复制内容到剪贴板
  1. function draw() {  
  2.     var c = document.getElementById("mycanvas");  
  3.     var cxt = c.getContext("2d");  
  4.     cxt.fillStyle = "#596";  
  5.     cxt.beginPath();  
  6.     cxt.arc(150, 150, 150, 0, Math.PI * 2, true);  
  7.     cxt.closePath();  
  8.     cxt.fill();  
  9. }  

1

画了一个大圆圈。

注意:

arc 方法里用到的角度是以弧度为单位而不是度。

度和弧度直接的转换可以用这个表达式:var 弧度= (Math.PI/180)*角度 ;。JS 可不支持中文,这么着理解简单

当然,你可以画一些弧线。例如

1

代码如下

JavaScript Code复制内容到剪贴板
  1. function draw() {  
  2.             var c = document.getElementById("mycanvas");  
  3.             var cxt = c.getContext("2d");  
  4.             cxt.fillStyle = "#596";  
  5.             cxt.beginPath();  
  6.             cxt.arc(150, 150, 150, 1, Math.PI * 1.5, true);  
  7.             cxt.stroke();  
  8.         }  

下面,我们在实现一个效果,就是实现类似 扫雷的表格
1

JavaScript Code复制内容到剪贴板
  1. <script type="text/javascript">  
  2.         function draw() {  
  3.             var c = document.getElementById("mycanvas");  
  4.             var cxt = c.getContext("2d");  
  5.             cxt.beginPath();  
  6.             for (var x = 0.5; x < 200; x += 10) {  
  7.                 cxt.moveTo(x, 0);  
  8.                 cxt.lineTo(x, 200);  
  9.             }  
  10.             for (var y = 0.5; y < 200; y += 10) {  
  11.                 cxt.moveTo(0, y);  
  12.                 cxt.lineTo(200, y);  
  13.             }  
  14.             cxt.strokeStyle = "#ff0000";  
  15.             cxt.stroke();  
  16.         }  
  17.     </script>  


这个其实就是两个循环罢了,

好了,完成任务,这节课到此结束。

 
 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 盘点HTML5标签使用的常见误区

    盘点HTML5标签使用的常见误区

    2014-11-16 20:49

  • 跟KingDZ学HTML5之十三:HTML5颜色选择器

    跟KingDZ学HTML5之十三:HTML5颜色选择器

    2014-11-16 20:49

  • 跟KingDZ学HTML5之十二:Form表单元素新增属性

    跟KingDZ学HTML5之十二:Form表单元素新增属性

    2014-11-16 20:49

  • 跟KingDZ学HTML5之十一:表单新元素

    跟KingDZ学HTML5之十一:表单新元素

    2014-11-16 20:49

网友点评
-