从零学习 canvas (一)
2017年10月24日 23:10
由于上一篇描述的原因。有图像处理的需求,于是我就开始学习 canvas 啦,和以前的一样,这一篇也是一边学一边写,敲出来的。有不正确的地方,欢迎指出。
canvas 本身的 api 描述是比较简单,但是衍生出来的东西,操作,图像处理,动画,性能,还是非常的多的。所以对于 canvas 的学习不出意外的话,将会是一个系列。这就是第一篇了。下面就开始吧
前言
1 | <canvas id="canvas" style="background:blue;">浏览器不支持canvas</canvas> |
在不支持 canvas 的浏览器中,显示标签中的内容。
绘图区域 默认是 300 x 150。
canvas 中的宽高是实际的宽高,css 中的宽高会等比缩放。
在开始绘图之前需要先,获取绘图环境。
1 | const canvas = document.querySelector('#canvas'); |
API
绘制方块
fillRect(x, y, width, height):绘制矩形,默认黑色strokeRect(x, y, width, height):带边框的矩形,默认黑色,默认 1px 。但是显示出来可能有区别clearRect(x, y, width, height)
清除指定矩形区域,让清除部分完全透明。1
2
3
4
5
6{
// 边框实际上被加粗了
context.strokeRect(100,100,50,50);
// 正常边框 1px
context.strokeRect(160.5,160.5,50,50);
}
设置绘图样式
fillStyle = color: 填充颜色(绘制 canvas 是有顺序的)lineWidth = value: 线宽度,是一个数值strokeStyle = color:边线颜色
1 | { |
边界绘制
lineJoin = type:边界连接点样式- miter/默认;round/圆角;bevel/斜角
lineCaP = type:端点样式- butt/默认;round/圆角;square/高度多出未为宽一半的值
绘制路径
beginPath():开始绘制路径closePath():结束绘制路径(,不是必需的)moveTo(x,y):移动到绘制的点,坐标x以及ylineTo(x,y):绘制一条从当前位置到指定x以及y位置的直线。fill(): 填充stroke(): 边框