什么是 Canvas
Canvas 是 html5 中新增的标签,用来在网页中创建一块画布。其本身只是一块区域,绘制需要用到 js 脚本
创建 Canvas
1 | <canvas id="myCanvas" width="200" height="200"></canvas> |
<canvas>
元素创造了一个固定大小的画布,它公开了一个或多个渲染上下文,其可以用来绘制和处理要展示的内容。<canvas>
标签要有一个 id 用于在脚本中获取画布,同时注意 <canvas>
必须是闭合的
##绘制 canvas
1 | var ctx = document.getElementById('myCanvas').getContext('2d') |
getContext(“2d”) 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
可以用一段简单的代码检查 canvas 的支持性
1 | if (canvas.getContext) { |
绘制矩形
canvas 中一共有三种方法绘制矩形
1 | ctx.fillRect(x, y, width, height) //绘制一个实心矩形 |
绘制路径
canvas只提供了矩形的api,因此绘制其他形状时需要通过创建路径来实现
绘制路径分为以下步骤
- 创建路径起始点
- 画出路径
- 关闭路径
- 使用描边或填充渲染图形
1 | beginPath() //创建路径 |
绘制一个三角形
1 | var tri1Ctx = document.getElementById('tri2').getContext('2d') |
圆形/圆弧
1 | arc(x, y, radius, startAngle, endAngle, anticlockwise) |
画一个以(x,y)为圆心的以radius为半径的圆弧(圆),从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针)来生成。
1 | arcTo(x1, y1, x2, y2, radius) |
根据给定的控制点和半径画一段圆弧,再以直线连接两个控制点。
1 | circleCtx.beginPath() |