Canvas学习笔记(一)

什么是 Canvas

Canvas 是一个可以使用脚本(通常为 JavaScript)来绘制图形的 HTML 元素。

直线

moveTo 把笔触移到某一点,lineTo 绘制一条从当前位置到指定 (x, y) 的直线

ctx.moveTo(0, 0);
ctx.lineTo(100, 100);
ctx.stroke();
1
2
3

矩形

画矩形使用 fillRectstrokeRect 方法,前一个画实心矩形,后一个画空心矩形

ctx.beginPath();
ctx.fillStyle = '#000';
ctx.fillRect(110, 0, 100, 100);
ctx.closePath();

ctx.beginPath();
ctx.strokeStyle = '#F00';
ctx.strokeRect(0, 110, 100, 100);
ctx.closePath();
1
2
3
4
5
6
7
8
9

圆或圆弧

画圆或圆弧使用 arc 方法,此方法接收 6 个参数,分别为 横坐标, 纵坐标, 半径, 开始弧度, 结束弧度, 是否逆时针。

弧的圆形的三点钟方向是 0 度

// 执行以下 2 段代码,可以清晰看清 0 度在哪里
ctx.beginPath();
ctx.arc(160, 160, 50, 0, 0.5 * Math.PI, false);
ctx.fill();
ctx.closePath();

ctx.beginPath();
ctx.arc(160, 160, 50, 0, 0.5 * Math.PI, true);
ctx.fillStyle = '#F00';
ctx.fill();
ctx.closePath();
1
2
3
4
5
6
7
8
9
10
11

贝塞尔曲线

贝塞尔曲线主要用来绘制复杂有规律的图形,贝塞尔曲线分为二次和三次贝塞尔曲线。

// 二次贝塞尔曲线
ctx.beginPath();
ctx.moveTo(220, 220);
ctx.quadraticCurveTo(245, 300, 300, 300);
ctx.stroke();
ctx.closePath();
// 三次贝塞尔曲线
ctx.beginPath();
ctx.moveTo(0, 310);
ctx.bezierCurveTo(50, 275, 75, 375, 100, 400);
ctx.stroke();
ctx.closePath();
1
2
3
4
5
6
7
8
9
10
11
12
最后更新: 8/10/2019, 7:38:12 PM