手把手教你玩转Canvas

Posted

tags:

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

参考技术A 之前用过 echarts 等图表插件,首次尝试自己写原生 canvas ,还以为多难多复杂的东西,深入了解之后发现就是数学中的几何图形嘛~ 欢迎大家和我一起来入坑!

<canvas> 看起来和 <img> 标签一样,只是 <canvas> 只有两个可选的属性 width、heigth 属性,而没有 src、alt 属性。
如果不给 <canvas> 设置 widht、height 属性时,则默认 width为300、height 为 150,单位都是 px。也可以使用 css 属性来设置宽高,但是如宽高属性和初始比例不一致,他会出现扭曲。所以,建议永远不要使用 css 属性来设置 <canvas> 的宽高。
替换内容
由于某些较老的浏览器(尤其是 IE9 之前的 IE 浏览器)或者浏览器不支持 html 元素 <canvas> ,在这些浏览器上你应该总是能展示替代内容。
支持 <canvas> 的浏览器会只渲染 <canvas> 标签,而忽略其中的替代内容。不支持 <canvas> 的浏览器则 会直接渲染替代内容。

用文本替换:

用 <img> 替换:

结束标签 </canvas> 不可省略。

与 <img> 元素不同, <canvas> 元素需要结束标签( </canvas> )。如果结束标签不存在,则文档的其余部分会被认为是替代内容,将不会显示出来。

如下图所示,canvas 元素默认被网格所覆盖。通常来说网格中的一个单元相当于 canvas 元素中的一像素。栅格的起点为左上角,坐标为 (0,0) 。所有元素的位置都相对于原点来定位。所以图中蓝色方形左上角的坐标为距离左边(X 轴)x 像素,距离上边(Y 轴)y 像素,坐标为 (x,y)。

后面我们会涉及到坐标原点的平移、网格的旋转以及缩放等。

<canvas> 只支持一种原生的图形绘制:矩形。所有其他图形都至少需要生成一种路径 (path)。不过,我们拥有众多路径生成的方法让复杂图形的绘制成为了可能。

canvas 提供了三种方法绘制矩形:

说明:这 3 个方法具有相同的参数。

图形的基本元素是路径。
路径是通过不同颜色和宽度的线段或曲线相连形成的不同形状的点的集合。
一个路径,甚至一个子路径,都是闭合的。

使用路径绘制图形需要一些额外的步骤:

下面是需要用到的方法:

有两个方法可以绘制圆弧:

注意:

arcTo 方法的说明:

这个方法可以这样理解。绘制的弧形是由两条切线所决定。

第 1 条切线:起始点和控制点1决定的直线。

第 2 条切线:控制点1 和控制点2决定的直线。

其实绘制的圆弧就是与这两条直线相切的圆弧。

以上是关于手把手教你玩转Canvas的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你玩转Git

手把手教你玩转 CSS3 3D 技术

手把手教你玩转物联网

手把手教你玩转 Excel 数据透视表

手把手教你玩转物业故障报修系统

手把手教你玩转12306验证码的秘密!