HTML5 - Canvas

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML5 - Canvas相关的知识,希望对你有一定的参考价值。

参考技术A html5 的 canvas 元素使用 javascript 在网页上绘制图像。

在使用 canvas 绘制图像时,canvas 画布左上角的坐标为(0, 0)

注意:canvas 画布大小不可通过 css 来改变,只能通过属性方式设置,否则可能出现失帧的情况(当使用 css 方式改变 canvas 画布大小时,只是 cavas 标签的大小改变了,正真的绘图区域大小并没有改变,所以出现了失帧的情况)。

示例:

示例:

示例:

示例:

示例:

示例:

示例:

1)参数说明:
参数 x:矩形左上角的 x 坐标。
参数 y:矩形左上角的 y 坐标。
参数 width:矩形的宽度,以像素计。
参数 height:矩形的高度,以像素计。
2) 注意事项:
context.rect(x, y, width, height); 只是创建了矩形,并没有绘制出来。因此,创建完成后需使用 context.stroke(); 来绘制。
3)示例:

1)参数说明:
参数 x:矩形左上角的 x 坐标。
参数 y:矩形左上角的 y 坐标。
参数 width:矩形的宽度,以像素计。
参数 height:矩形的高度,以像素计。
2)默认的填充颜色是黑色。可以使用 fillStyle 属性来设置用于填充绘图的颜色、渐变或模式。
3)示例:

1)参数说明:
参数 x:矩形左上角的 x 坐标。
参数 y:矩形左上角的 y 坐标。
参数 width:矩形的宽度,以像素计。
参数 height:矩形的高度,以像素计。
2)笔触的默认颜色是黑色。
3)可以使用 strokeStyle 属性来设置笔触的颜色、渐变或模式。
4)示例:

1)参数说明:
参数 x:要清除的矩形左上角的 x 坐标。
参数 y:要清除的矩形左上角的 y 坐标。
参数 width:要清除的矩形的宽度,以像素计。
参数 height:要清除的矩形的高度,以像素计。
小技巧:
当 x = 0,y = 0,width = canvas.width,height = canvas.height 时,则可以清除画布上的矩形
2)示例:

1)参数说明:
参数 x:圆中心的 x 坐标。
参数 y:圆中心的 y 坐标。
参数 r:圆的半径。
参数 sAngle:起始角弧度(圆的三点钟位置是0度)。
参数 eAngle:结束角弧度(圆的三点钟位置是0度)。
参数 counterclockwise:规定逆时针还是顺时针绘图。f'alse = 顺时针,true = 逆时针。
2) 角度和弧度的关系:角度/弧度 = 180/pi
3)创建完圆弧后需使用 context.stroke(); 绘制创建的圆弧。
4)示例:绘制一个圆

5)示例:绘制圆上任意一点
圆上任意一点坐标:x = ox + r*cos(弧度),y = oy + r*cos(弧度)
ox:圆心的 x 坐标。
oy:圆心的 y 坐标。
r:圆的半径。

2)设置字体水平对齐方式

2)设置字体垂直对齐方式

textBaseline 属性在不同的浏览器上效果不同,特别是使用 "hanging" 或 "ideographic" 时。

3)设置文字阴影效果

1)参数说明:
参数 text:文本内容
参数 x:开始绘制文本的 x 坐标位置(相对于画布)。
参数 y:开始绘制文本的 y 坐标位置(相对于画布)。
2)默认的填充颜色是黑色。可以使用 fillStyle 属性来设置用于填充绘图的颜色、渐变或模式。
3)示例:

1)参数说明:
参数 text:文本内容
参数 x:开始绘制文本的 x 坐标位置(相对于画布)。
参数 y:开始绘制文本的 y 坐标位置(相对于画布)。
2)默认的笔触颜色是黑色。可以使用 strokeStyle 属性来设置笔触的颜色、渐变或模式。
3)示例:

1)参数说明:
参数 img:规定要使用的图像。
参数 x:在画布上放置图像的 x 坐标位置。
参数 y:在画布上放置图像的 y 坐标位置。
2)当图像的大小超出画布的大小时,超出的部分将不会被显示出来。
3)示例:

1)参数说明:
参数 img:规定要使用的图像。
参数 x:在画布上放置图像的 x 坐标位置。
参数 y:在画布上放置图像的 y 坐标位置。
参数 width:要使用的图像的宽度(伸展或缩小图像)。
参数 height:要使用的图像的高度(伸展或缩小图像)。
2)因保持 width/height = img.width/img.height,否则绘制后的图片会失帧。
3)示例:

1)参数说明:
参数 img:规定要使用的图像。
参数 sx:从图像的 sx 坐标位置开始剪切。
参数 sy:从图像的 sy 坐标位置开始剪切。
参数 swidth:剪切的宽度。
参数 sheight:剪切的高度。
参数 x:在画布上放置图像的 x 坐标位置。
参数 y:在画布上放置图像的 y 坐标位置。
参数 width:要使用的图像的宽度(伸展或缩小图像)。
参数 height:要使用的图像的高度(伸展或缩小图像)。
2)因保持 width/height = swidth/sheight,否则绘制后的图片会失帧。
3)示例:

stop:介于 0.0 与 1.0 之间的值,表示渐变中开始(0.0)与结束(1.0)之间的位置。
color:颜色。

示例:

html5 canvas绘图有啥用

canvas能做什么?
canvas是HTML5中的新元素,你可以使用javascript用它来绘制图形、图标、以及其它任何视觉性图像。它也可用于创建图片特效和动画。如果你掌握了完整的命令,你可以用canvas创建丰富的web应用程序。如果你想很好的使用canvas,你首先应该很好的掌握javascript。
这篇文章是一篇基础教程,你能了解一些设计方法。比如用HTML5 canvas 进行图形设计。
用HTML5 canvas设计
设计和开发一个web页面会包含很多的内容,用户首先需要有一个支持HTML canvas的浏览器。
首先创建一个HTML5文档页面,设置document type是HTMl5的;
其次在页面body区域添加一个canvas标签:

<canvas></canvas>

第三、给这个canvas定义一个id属性,这样方便我们在js中调用它。添加一个宽和高属性,在canvas标签中添加一个当浏览器不支持的时候显示给用户的内容。下面是列子代码:

<canvas id="canvastest" width="500" height="600">
<p>你的浏览器不支持HTML5 canvas,请更新您的浏览器!</p>
</canvas>

现在我们创建了一个包含HTML5 canvas 元素的空白画布,我们将使用js和canvas元素的方法来创建我们的图像。
添加一个javascript用HTMl5 canvas的方法:

var canvasTest=document.getElementById('canvastest');//获取canvas元素;
var testcontext=canvasTest.getContext('2d');

使用javascript来创建你的画布,你可以使用矩形、圆圈和三角形,并使用线、幻灯片和渐变来创建你的设计。
下面是完成的代码:

var canvasTest=document.getElementById('canvastest');
var testcontext=canvasTest.getContext('2d');
// create rectangle

testcontext.fillStyle='rgb(0,125,125)';
testcontext.fillRect(10,10,250,180);

// create circle

testcontext.beginPath();
testcontext.arc(300, 340, 100, 0, Math.PI * 2, true);
testcontext.closePath();
testcontext.fillStyle='rgb(75,10,125)';
testcontext.fill();
testcontext.stroke();

我们可以将上面的代码加入window.onload,或者jQuery的ready方法里,当文档加载完,将会创建文明的图形。
一些HTML5 canvas 图像解决方案
用与HTML5 Canvas元素你可以开发动态绘图对象比如如可视化信息或数据图。HTML5 canvas 可以在javascript的帮助下很容易的绘制二维图形。让我们来看一下HTML5 canvas元素的一些数据图应用。
1. HumbleFinance
HumbleFinance是用js开发的一个开源的数据可视化图表,它用HTML5 canvas生成可视化图表数据,它可以用一个轴来展示任何两个二维的数据集。
地址: http://www.humblesoftware.com/finance/index

2.Graphr
Graphr是一个用HTML5 canvas写的一个计算器应用,有每个图像计算器应有的基本功能。
地址:http://www.graphr.org/

3.用HTML5和jQuery创建的华丽的动画饼图
你可以用javascript和HTML5来创建一个交互式饼图,有华丽的动画效果。这在之前只能用flash来完成,现在也可以使用最新的HTML5技术了。
地址:http://cyberpython.github.com/AwesomeChartJS/

4. AwesomeJS
AwesomeJS 能够让你创建简单有用的图表,而仅需几行代码即可。这是一个基于HTML5和canvas的javascript库。
地址:http://cyberpython.github.com/AwesomeChartJS/

5.Ticker Plot(股票图)
Ticker Plot(股票图)是每一个在工作是使用图标的web开发人员都必备的一个图表工具。这是一个开源的项目,它使用HTML5 canvas在画布上绘制图形符号和鼠标事件。Ticker Plot(股票图)是专门为股票行情和技术分析设计的。
参考技术A html5 canvas 元素的作用就是描绘出图形,比如画圆,扇形,折线图等,有了这个,这些功能都是很好实现的。 参考技术B

 HTML 绘图教程

以上是关于HTML5 - Canvas的主要内容,如果未能解决你的问题,请参考以下文章

[Canvas前端游戏开发]——FlappyBird详解

HTML5Canvas和SVG的区别

三天学会HTML5——SVG和Canvas的使用

h5 canvas基本知识

H5 Canvas 绘图

H5使用Canvas绘图