canvas
1. 自学 Canvas 时的一些参考资料
- 0056. canvas 在线学习 - 菜鸟教程
- 0052. canvas 在线学习 - 掘金
- 0053. canvas 在线学习 - html5canvas tutorials
- 0054. canvas 在线学习 - MDN Canvas tutorial
- 0055. canvas 在线学习 - HTML Canvas Deep Dive
2. 基本概念
- 0001. 认识 canvas 标签
- 0002. 判断浏览器是否支持 canvas
- 0003. 区分 canvas 的 width、height 属性和 style 中设置的 width、height 值
- 0005. canvas 的默认尺寸 300 x 150
- 0006. 使用 JSDoc 来标注 canvas 变量类型
3. 绘图操作
- 0004. 使用 ctx.clearRect 清除画布
- 0018. 使用 ctx.fillRect 绘制矩形
- 0019. 使用 ctx.strokeRect 绘制矩形
- 0020. 使用 ctx.roundRect 绘制圆角矩形
- 0021. 使用 ctx.rect 绘制矩形
- 0024. 使用 ctx.arc 绘制圆弧
- 0026. 使用 ctx.ellipse 绘制椭圆
- 0027. 使用 ctx.arcTo 绘制圆弧
- 0035. 使用 ctx.drawImage 引入图像
- 0040. 使用 ctx.createConicGradient 实现锥形渐变效果
- 0041. 使用 ctx.createLinearGradient 实现线性渐变效果
- 0042. 使用 ctx.createRadialGradient 实现径向渐变效果
- 0043. 给图像添加阴影
- 0044. 使用 ctx.filter 实现滤镜效果
4. 路径和形状
- 0022. 使用 ctx.closePath 闭合路径
- 0023. 使用 ctx.beginPath 方法对路径进行分组
- 0025. 使用 ctx.quadraticCurveTo、ctx.bezierCurveTo 绘制贝塞尔曲线
- 1. 📒 二次、三次贝塞尔曲线绘制原理
- 2. 💻 demos.1 - 二次贝塞尔曲线
- 3. 💻 demos.2 - 三次贝塞尔曲线
ctx.quadraticCurveTo
、ctx.bezierCurveTo
这俩 API 的使用很简单,无非就是传入 2 个点还是 3 个点。重点在于理解贝塞尔曲线的绘制原理。理解原理后,自然就理解这俩 API 应该如何使用了。- https://blog.csdn.net/m0_37602827/article/details/118165217 - CSDN - 贝塞尔曲线原理 - 这是 CSDN 上的一篇介绍贝塞尔曲线原理的文章。
5. 文本处理
- 0014. 使用 ctx.fillText、ctx.strokeText 绘制文本
- 0015. 使用 ctx.font 设置字体样式
- 0016. 使用 ctx.textBaseline、ctx.textAlign 设置文本对齐方式
6. 动画效果
- 0007. 使用 ctx.save 和 ctx.restore 保存和恢复画布状态
- 0008. 使用 ctx.lineCap 设置线条端点样式
- 0009. 使用 ctx.lineDashOffset 设置虚线的偏移量
- 0010. 使用 ctx.setLineDash 设置虚线
- 0011. 使用 ctx.miterLimit 约束两线相交处的最大倾斜长度
- 0012. 使用 ctx.lineTo 来绘制线条
- 0013. 使用 ctx.lineJoin 设置线条连接处的样式
- 0017. 绘制网格
- 0028. 矩形边框旋转动画
- 0029. 线条穿梭动画
- 0030. 模拟进度条动画效果
- 0045. 使用 ctx.rotate 实现图像旋转
- 0046. 使用 ctx.scale 缩放绘制的图像
- 0047. 使用 ctx.transform 来转换图形
- 0048. 使用 ctx.translate 移动画布
- 0049. 模拟烟花效果
- 0050. 实现动态时钟效果
- 0051. 贪吃蛇小游戏
7. 图像处理
- 0031. 使用 ctx.clip 实现图像裁剪
- 1. 🔗 links
- 2. 📒
ctx.clip
简介 - 3. 👨🏫 搞懂 SVG/Canvas 中 nonzero 和 evenodd 填充规则
- 4. 💻 demos.1 - 裁剪菱形
- 5. 💻 demos.2 - 裁剪圆形
- 6. 💻 demos.3 - 理解 fillRule
- 7. 💻 demos.4 - 问题记录
- ctx.clip 的基本使用是比较简单的,但是填充规则不太好理解,并且暂时也还不清楚填充规则有何实际的应用场景……
- 对于填充规则的介绍,文中引用了“张鑫旭”老师的博客文章 —— 搞懂 SVG/Canvas 中 nonzero 和 evenodd 填充规则。
- ⏰ 在这篇文章的最后一个示例中,存在个问题还没理解。
- nonzero 和 evenodd 填充规则在笔记 svg.0024 中也有提及。
- 0032. 使用 ctx.createPattern 创建填充图案
- 0033. 使用 ctx.drawImage 绘制视频图像
- 0034. 使用 ctx.drawImage 实现人物奔跑动画效果
- 0036. 使用 ctx.getImageData、ctx.putImageData 实现图像的像素处理
- 0037. 使用 ctx.globalCompositeOperation 处理图像合成
- 0038. 使用 ctx.globalCompositeOperation 实现刮刮乐效果
- 0039. 下载、使用 canvas 图像