canvas教程

Canvas学习教程 : Canvas介绍

字号+ 作者:H5之家 来源:H5之家 2015-09-08 09:00 我要评论( )

这一系列教程会带你快速认识Canvas,这是第一篇,RockUX先带你简单认识一下Canvas。Canvas是现代浏览器中内建的一个画图的方法,这篇文章中,RockUX会介绍如何访

这一系列教程会带你快速认识Canvas,这是第一篇,RockUX先带你简单认识一下Canvas。Canvas是现代浏览器中内建的一个画图的方法,这篇文章中,RockUX会介绍如何访问Canvas元素,怎么画图形,变换颜色以及擦除。这个新技术非常的令人激动。

Canvas元素简介

当你听到Canvas的时候,你的第一反应应该是会想到HTML5的新元素。技术上来说,这只是一部分,从现在开始,我们先忘记那个吧。Canvas元素是浏览器新技术对外的一个窗口。

使用Canvas元素非常的简单,就是一个简单的HTML标签和给定的宽高。

1 2 3 <canvas> <!--这里是备注内容--> </canvas>

这个canvas当然什么都不会做,他只会在你的页面上放置一个透明的画布。Canvas里面写的内容会在浏览器不支持canvas的时候显示出来。

浏览器的支持

哪些浏览器支持Canvas,这个很重要。基本上现代浏览器都支持,包括最新版的IE。

有意思的是,你在IE8及以下的版本中可以使用插件来让浏览器支持,这里查看。

Canvas的尺寸

学习Canvas很重要的一点就是要给他设置大小尺寸。使用CSS来设置宽高,会导致Canvas去调整适应那个尺寸。这背后的逻辑是:Canvas元素的渲染是调用浏览器的2D图形引擎来做的。无论怎样,只要知道用CSS来设置Canvas的宽高会有一些奇怪的问题。

2D图形渲染

上一节中提到的Canvas只是整个系统中的一部分。另外一部分就是2D渲染引擎,可以让你立即感受到你所做的的一个重要部分。 再解释一下:当你使用Canvas的时候,你不是在Canvas上面直接画。相反你实际上是在一个2D图形环境上操作,只不过你是调用JavaScript的API通过Canvas元素做到的。细节的东西可能在这里没什么用处,但是还是了解一下吧。

坐标系统

如果你之前使用过2D图形编程语言的话,那么你应该了解屏幕坐标系统。Canvas的2D图形引擎也没什么区别,也是用直角坐标系,原点坐标在左上角。X轴右移增大,Y轴下移增大。还是很直观的。 大部分情况下,屏幕上的一像素相当于这个坐标系的一个单位。

访问2D图形引擎

调用图形接口,你需要使用JavaScript的API,你需要使用的是getContext方法:

<!DOCTYPE html>  <html>  <head>  <title>Canvas from scratch</title>  <meta charset="utf-8">    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>    <script>  $  var canvas = document.getElementById("myCanvas");  var ctx = canvas.getContext("2d")});  </script>  </head>    <body>  <canvas>  <!-- Insert fallback content here -->  </canvas>  </body>  </html>

这里使用jQuery是为了用domready方法,你也可以用你自己喜欢的JS库,然后把这段代码放在文档底部就好了。

在调用getContext方法之后,变量ctx中就包含了2D图形引擎的引用,这意味着你就可以开始在Canvas上面画东西了。

画矩形

在获取2D图形引擎的引用之后,你就可以通过一些方法开始画图了。最基础的一个方法就是fillRect,这个方法会使用一定颜色(默认是黑色)画一个特定的矩形。

添加下面的代码:

1 ctx.

这会在画布上画一个黑方块出来,距离画布边缘也有一定的距离。

你已经用HTML5画了你的第一个图形了,感觉不错吧,哈哈。

你可能注意到,你使用画矩形的API来画了一个正方形,因为在提供的API中没有专门化正方形的,就用矩形来画了。

fillRect方法有四个参数:

将fillRect方法写成伪代码就是:

1 ctx.

更酷的是,你不仅仅可以填充矩形,还可以画空的矩形,也就是只有边框的矩形。可以使用strokeRect方法:

1 ctx.

跟fillRect的参数一样,你会得到下面的图形:

很简单,也很优雅,Canvas的基本方法都是这样的,然后可以把他们组合起来用,会有很多精彩的东西出来。

画路径

除过矩形(唯一一个可以直接调用API完成的图形),还有路径。通过路径,你可以画各种线,直线或者曲线,叠加使用可以画一些很复杂的东西出来。

画一个简单的路径需要下面的这些方法:

试试下面的代码:

1 2 3 4 5 6 ctx.ctx.ctx.ctx.ctx.ctx.

我们会看到这个图:

你可以根据这个方法来画任何你想画的图形。RockUX会在后面的教程中介绍更多的高级方法,大家多多关注rockux.com吧。需要知道就是比起矩形,path是你想画复杂图形的唯一办法。

换个颜色吧

到现在为止,我们填充的颜色都是黑色。提供的API中有一些是可以修改图形的颜色的,例如fillStyle和strokeStyle。

他们的名字具有自解释性。看个例子吧:

1 2 ctx.ctx.

那么就会得到下面的图形:

也可以控制边框的颜色:

 

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

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • HTML5新特性详解(三)

    HTML5新特性详解(三)

    2017-04-30 16:03

网友点评