背景
眨眼之间,2020年已经过去了一半。前端学习的计划还没结束,新的计划就要开始,顿时感觉压力倍增呀。暑假是一个很好的学习时间,希望在这一段时间的“闭关”中,我能够打牢基础,为以后的学习做准备。
闲言少叙,除了SVG之外,HTML5新增了canvas绘图利器,在动态展现表格数据方面有着强大的功能。
Canvas定义
- HTML5 canvas标签用于绘制图像。
- getContext()方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。
- canvas元素创造了一个固定大小的画布,它公开了一个或多个渲染上下文,其可以用来绘制和处理要展示的内容。
- canvas元素有一个叫做 getContext()的方法,这个方法是用来获得渲染上下文和它的绘画功能。getContext()只有一个参数,上下文的格式。
1 | var canvas = document.getElementById('tutorial'); |
Canvas绘制常见图形
线条
1 | beginPath() //新建一条路径,生成之后,图形绘制命令被指向到路径上生成路径。 |
示例
1 | //绘制三角形 |
矩形
1 | fillRect(x, y, width, height) //绘制一个填充的矩形 |
示例
1 | //绘制矩形 |
圆弧
- 画一个以(x,y)为圆心的以radius为半径的圆弧(圆),从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针)来生成。
- arc()函数中表示角的单位是弧度,不是角度。角度与弧度的js表达式:
弧度=(Math.PI/180)*角度。
1 | arc(x, y, radius, startAngle, endAngle, anticlockwise) |
示例
1 | //绘画一个笑脸 |
曲线
1 | quadraticCurveTo(cp1x, cp1y, x, y) //绘制二次贝塞尔曲线,cp1x,cp1y为一个控制点,x,y为结束点。 |
示例
1 | function draw() { |
文本
1 | fillText(text, x, y [, maxWidth]) //在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的. |
示例
1 | //填充文本 |