Canvas基础知识:Canvas属于行内元素,使用Canvas绘制图形步骤:
1、获取Canvas对象
2、获取上下文环境对象context。
3、开始绘制图形
在Canvas对象中常用属性
属性 | 说明 |
width | Canvas的宽度 |
height | Canvas的高度 |
Canvas常用的方法
属性 | 说明 |
getContext("2d") | 获取Canvas2D上下文环境对象 |
toDataURL() | 获取Canvas对象产生的位图的字符串 |
- HTML5 Canvas暂时只提供2D绘图API,3D绘图可以使用HTML5的WebGL进行绘制。
基本图形的绘制
在Canvas中,基本图形有直线图形和曲线图形。
- 直线绘制,使用moveTo()和lineTo()来绘制直线,语法:
moveTo()的含义是把画笔移动到起点(x1,y1),开始绘图。lineTo()含义是将画笔从起点开始画线,一直到终点坐标(x2,y2)。当然,moveTo()和lineTo()方法只是确定起点和终点而已,并没有开始绘制。stroke()方法的含义就是连接起点和终点,完成绘图。当lineTo()重复使用时,最后一个lineTo()就是终点,绘制成多条线。
- 矩形绘制(描边和填充矩形),可以把moveTo()和lineTo()配合使用绘制一个矩形,但是这样绘制矩形代码量过多,Canvas提供了独立的方法来绘制矩形。语法:
strokeStyle属性取值有三种,即颜色值、渐变色、图案。
strokeRect()方法用于确定矩形的位置坐标。
填充矩形的语法:
除了使用strokeRect()和fillRect()两种方法外,还可以使用rect()方法。者三种方法的参数是一样的,不同之处在实现效果方面,strokeRect()和fillRect()在调用之后会立即绘制矩形。rect()方法在调用之后并不会立即绘制,还需要调用stroke()或者fill().
还可以使用clearRect()方法清空指定矩形区域
- 曲线图形,会涉及到两种情况:曲线和弧线。两者是有区别的,弧线是圆周的一部分,曲线则是不一定(当曲线上每一点的曲率都相同时,曲线就是弧线)。
圆形
使用arc()方法来绘制圆形,语法:
描边圆形语法:
例如:半圆与圆形
填充圆形语法:
上面的例子中圆形填充颜色:
- 弧线,常见的两种方法:arc()和arcTo()。arc()画弧线的语法:
如:
arcTo()画弧线
语法:
如:
圆角矩形的封装
二次贝塞尔曲线
在canvas中,常见的贝塞尔曲线有两种:二次贝塞尔曲线和三次贝塞尔曲线,使用quadraticCurveTo()方法来绘制二次贝塞尔曲线,语法:
绘制二次贝塞尔曲线需要三个坐标点:起点、控制点和终点。一般是由moveTo()或者lineTo()提供起点,由quadraticCurveTo()提供控制点和终点。如:
三次贝塞尔曲线,语法:
与二次贝塞尔曲线的区别是,三次贝塞尔曲线有两个控制点,二次贝塞尔曲线只有一个控制点。