canvas入门

122 阅读1分钟

所有操作都在ctx上进行 canvas实例 ctx = canvas.getContext('2d')

api

ctx.fillstyle 形状内部填充色

ctx.fillrect 绘制矩形

绘制线段

ctx.beginPath() //开始绘制路径

ctx.lineWidth //宽度

ctx.strokeStyle //线条填充色

ctx.moveTo //设置起点

ctx.lineTo //绘制点终点

//持续调用ctx.lineTo 可以绘制连续多条线段。

ctx.stroke() //绘制线段 这个才会真正的绘图

再次调用ctx.beginPath可以结束上次线段绘制 免得线段和下次画矩形的线连起来

一般连续绘制上次的重点就是这次的起点 除非用Moveto去改变起点

一般lineTo都不会画线只是一个坐标变化知道线怎么画 调用完 stroke() 这个才是画线

fillStyle一般是形状内部里的填充色

strokeStyle是画形状的线条的填充色

ctx.arc() //设置圆心坐标和半径和开始角度和结束角度

ctx.fill() //填充圆形等形状

ctx.stroke() //绘制圆形等的线段

一定搞清楚绘图属性和绘图api

属性是不会画出东西来的

fillstyle lineWidth strokeStyle moveTo strokeStyle arc lineTo

绘图api才会绘图出来

fillrect beginPath stroke fill

canvas图片放缩会模糊 svg不会 所以svg适合需要放大缩小的情况比如图标

svg是dom 开销比canvas多 在动画时候会卡顿