本教程包含以下内容(原创作品转载请注明出处)

  1. 大部分canvas基础API用法示例,内部工作原理探索
  2. 部分bug以及hack方法,如怎样绘制1px粗细的线条
  3. 部分API对应的数学变换公式推导,如scale/translate/rotate/transform与矩阵的相互推导
  4. 绘制虚线/箭头/圆角矩形/虚线圆/虚线圆角矩形/椭圆等图形
  5. 常见的碰撞检测、像素检测方法演示/实现细节/适用场景
  6. 如何实现物体堆叠顺序的变换,类似css中的z-index
  7. 2d动画中的精灵动画实现原理解析
  8. 如何计算多边形重心

目录

chapter 01: ctx.save/ctx.restore

chapter 02: ctx.fill*

chapter 03: ctx.drawImage*

chapter 04: ctx.fillRect/strokeRect/clearRect

chapter 05: ctx.arc

chapter 06: ctx.beginPath/closePath

chapter 07: 实例1:lineTo绘制围棋棋盘

chapter 08: 实例2:lineTo绘制菊花

chapter 09: quadraticCurveTo/bezierCurveTo二次/三次贝塞尔曲线

chapter 10: ctx.createLinearGradient线性渐变

chapter 11: ctx.createRadialGradient径向渐变

chapter 12: ctx.translate/ctx.scale/ctx.rotate 位移/缩放/旋转

chapter 13: ctx.transform 矩阵变换

chapter 14: ctx.globalCompositeOperation图形组合

chapter 15: ctx.shadowOffsetX/shadowOffsetY/shadowColor/shadowBlur阴影

chapter 16: ctx.createPattern(image, type) 图像平铺

chapter 17: ctx.clip() 画布裁剪

chapter 18: ctx.getImageData/putImageData/createImageData 像素操作

chapter 19: canvas事件

chapter 20: canvas像素碰撞检测

chapter 21: canvas 小游戏

chapter 22: canvas 小游戏改进版(添加sprite及优化缩放)

chapter 23: canvas碰撞检测(光线投射法)

chapter 24: 图片翻转

chapter 25: 像素级别碰撞检测

chapter 26: 求解多边形重心

chapter 27: 实现探照灯

chapter 28: 绘制圆角矩形/虚线/箭头

chapter 29: 绘制虚线圆角矩形/虚线圆(弧)/虚线箭头

chapter 30: 绘制椭圆/虚线椭圆(弧)

chapter 31: 高级loading动画