canvas教程

html5的canvas的学习笔记

字号+ 作者:H5之家 来源:H5之家 2017-12-03 10:42 我要评论( )

html5的canvas的学习笔记 在html5中,canvas元素是一个非常重要的元素,用于完成网页中各种图形,图像与动画的绘制工作。 body onload=

html5的canvas的学习笔记

在html5中,canvas元素是一个非常重要的元素,用于完成网页中各种图形,图像与动画的绘制工作。

<body> 

<div><h1>使用canvas元素绘制指针式动画时钟</h1></div>

   <div><canvasheight="200px"></canvas></div>

</body>

1、取得页面中的canvas元素

   varcanvas=document.getElementById("canvas");

2、取得canvas元素的图形上下对象

在大多数程序中进行图形绘制时,都需要使用图形上下文(graphics context)对象。图形上下对象是一个封装了很多绘图功能的对象。在使用canvas元素进行图形绘制时,需要使用canvas对象的getContext方法来获得图形上下文对象,方法如下所示:

    varcontext=canvas.getContext('2d');

3、保存当前绘制状态。

   使用图形上下文对象的save方法来保存当前绘制状态,使用图形  上下文对象的restore方法恢复之前保存的绘制状态,代码如下:

  context.save();

  context.restore();

4、将指定的矩形区域中的图形擦除

  使用图形上下文对象的clearRect(x,y,width,height)

该方法使用四个参数:x是指定的矩形区域起点的横坐标;y是指定的矩形区域起点的纵坐标,坐标原点为canvas画布的左上角,width是指定的矩形域的长度,height是指定的矩形区域的高度。

5、平移坐标抽

使用图形上下文对象的translate方法移动坐标抽。代码如下。

context.translate(x,y);

translate方法有两个参数,x表示将坐标轴原点向左移动多少个单位,默认单位为像素;y表示将坐标轴原点向下移动多少个单位

6、创建路径

 在进行复杂图形的绘制时,需要先创建该图形的绘制路径,然后以这个路径为基础进行图形的绘制。使用图形上下文对象的beginpath方法开始路径的创建工作,代码如下:

context.beginPath();

7、设定绘图样式

在进行图形绘制的时候,首先要设定好绘图的样式(style),然后调用有关方法进行图形的绘制。所谓绘图的样式,主要是针对图形的颜色而言的,但是并不限于图形的颜色。

使用图形上下文对象的fillStyle属性来指定填充图形的样式,在该属性中填入填充的颜色或其他填充样式,代码如下所示。

context.fillStyle="green";

使用图形上下文对象的strokeStyle属性来指定图形边框的样式,在该属性中填入图形边框的颜色值或其他边框样式,代码如下所示:

context.strokeStyle="back";

8、绘制直线

       使用图形上下对象的lineTo方法绘制一条直线,代码如下:

lineTo(x,y);

该方法有两个参数,x表示直线终点的横坐标,y表示直线终点的纵坐标。

注意:该方法只是指定一条绘制直线的路径,绘制该直线的处理依靠fill方法(填充图形)或stroke方法(绘制图形边框)执行的。

9、填充图形

使用图形上下对象的fill方法填充图形(填充样式依靠fillStyle属性来指定),代码如下所示。

context.fill();

10、绘制图形边框

使用图形上下文对象的stroke方法绘制图形边框(边框样式依靠strokeStyle属性来指定),代码如下所示。

context.stroke();

11、关闭路径

路径创建完成后。使用图形上下文对象的closePath方法将路径关闭,代码如下所示。

context.closePath();

将路径关闭后,路径的创建工作就完成了。

12、创建圆形与弧形路径

   context.arc(x,y,radius,startAngle,endAngle,anticlockwise)

该方法有6个参数,x为圆形的起点横坐标,y为圆形的起点纵坐标,radius为圆形半径,startAngle为开始弧度,endAngle为结束弧度,anticlokwise为是否按顺时针方向进行绘制。

13、指定所绘文字的字体属性

   可以直接使用canvas元素的图形上下文对象的font属性来指定在canvas元素中绘制文字时所使用的字体属性。

  context.font='bold 16px 宋体’;

14、得到文字的宽度

    利用canvas元素的图形上下文对象的measureText方法来得到某个指定字符串在使用了指定字体大小后文字的宽度。代码如下所示:

metrics=context.measureText(text);

15、绘制文字

在canvas apl中,使用canvas元素的图形上下文对象的fillText方法或strokeText方法来绘制文字。

其中fillText方法以填充方式绘制字符串,代码如下所示:

void fillText(text,x,y,[maxWidth]);

strokeText方法以轮廓方式绘制字符串,该方法的定义如下所示:

void  strokeText(text,x,y,[maxWidth]);

16 填充矩形与绘制矩形边框的两种方法:

    context.fillRect(x,y,width,height)

fillRect方法使用4个参数,其中x是指矩形起点的横坐标,,y是指矩形起点的纵坐标,坐标原点为canvas画布的左上角,width是矩形的长度,height是指矩形的高度,四个参数,矩形的大小也同时被确定。

绘制矩形边框的方法如下:

context.strokeRect(x,y,width,height)

原理如上:

17、context.arc(x,y,r,sAngle,eAngle,counterclockwise);

参数值

参数

描述

x

圆的中心的 x 坐标。

y

圆的中心的 y 坐标。

r

圆的半径。

sAngle

起始角,以弧度计。(弧的圆形的三点钟位置是 0 度)。

eAngle

结束角,以弧度计。

counterclockwise

可选。规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。

18、drawImage()方法

    drawImage()方法在画布上绘制图像,画布或视频。

   drawImage()方法也能绘制图形的某些部分,以及或者增加或减少图像的尺寸。

第一种方法只使用三个参数,第一个参数image可以是一个img元素,一个video元素或者JavaScript中的一个image对象,使用该参数实际代表的对象来封装图形。x与y为绘制时该图像在画布中的起水坐标

context.drawImage(image,x,y);

第二种方法中的前三个参数与第一种方法中的一样,w,h是绘制时的图形的宽度与高度。第一种方法省去了这个两个参数,所以绘制出来的图像与原图大小相同,而第二种方法可以对图形进行放大放小。

context.drawImage(image,x,y,w,h);

参数

描述

img

规定要使用的图像、画布或视频。

sx

可选。开始剪切的 x 坐标位置。

sy

可选。开始剪切的 y 坐标位置。

swidth

可选。被剪切图像的宽度。

sheight

可选。被剪切图像的高度。

x

在画布上放置图像的 x 坐标位置。

y

在画布上放置图像的 y 坐标位置。

width

可选。要使用的图像的宽度。(伸展或缩小图像)

height

可选。要使用的图像的高度。(伸展或缩小图像)

context.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);

 

参考书:HTML 5 开发精要与实例详解

参考网页:

 

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

相关文章
  • Canvas的使用样例14(图形增加鼠标点击、拖动交互)

    Canvas的使用样例14(图形增加鼠标点击、拖动交互)

    2017-12-03 13:07

  • Photoshop CS5视频教程

    Photoshop CS5视频教程

    2017-12-02 14:06

  • 基于HTML5 Canvas的图表插件Chart.js

    基于HTML5 Canvas的图表插件Chart.js

    2017-12-01 10:07

  • 基于HTML5 Canvas 实现商场监控

    基于HTML5 Canvas 实现商场监控

    2017-12-01 10:04

网友点评