你知道canvas吗?

2021-07-12 18:32发布

有的人可能听说过html5,在html5中新增了很多标签,其中就有Canvas,那么问题来了,什么是 canvas呢?


HTML5 <canvas> 元素可被用来通过JavaScript(Canvas API 或 WebGL API)绘制图形及图形动画【来源于MDN的说明】。

注意:<canvas> 标签只是图形容器,必须需要使用脚本来绘制图形。

接下来我们一起画一个canvas:


首先,先创建一个画布(Canvas):


注意: 默认情况下 <canvas> 元素没有边框和内容。


  • HTML:宽300, 高200

<canvas id="myCan" width="300" height="200" style="border: 1px solid black"></canvas>

注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.

提示:可以在HTML页面中使用多个 <canvas> 元素.


第二,我们使用 JavaScript 来绘制图像:


在这里我们需要知道一个事情,canvas 元素本身是没有绘图能力的,所有的绘制工作必须在 JavaScript 内部完成:


  • JavaScript:

1.找到 <canvas> 元素:
var can=document.getElementById("myCan");
2.创建 context 对象:
    //getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
var c=can.getContext("2d");
3.设置fillStyle属性可以是CSS颜色,渐变,或图案。
    //fillStyle 默认设置是黑色。
c.fillStyle="red";
    //fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。
c.fillRect(100,50,100,100);


效果图:


接下来,第三步,关于Canvas 的坐标:

其实,canvas 是一个二维的网格,它的左上角坐标为 (0,0)

上面刚刚使用js写的 fillRect 方法拥有参数 (100,50,100,100),它的意思是说:想要在画布上绘制 100x100 的矩形,从坐标点(100,50)开始 。

坐标示意图:

第四步,Canvas 的路径

我们可以使用以下两种方法,在Canvas上画线:

  • moveTo(x,y) 定义线条开始坐标

  • lineTo(x,y) 定义线条结束坐标

示例:

HTML:宽100, 高100

<canvas id="myCan" width="100" height="100" style="border: 1px solid black"></canvas>

JavaScript:

//定义开始坐标(50,50), 和结束坐标 (100,100)。然后使用 stroke() 方法来绘制线条:
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.moveTo(50,50);
ctx.lineTo(100,100);
ctx.stroke();

效果图: