Skip to content

一个无限画布教程

一步步构建一个可用的无限画布

Infinite Canvas

这份教程包含基于 WebGL / WebGPU 的基础 2D 图形渲染实现:

也包含使用 Web Components 技术实现的 UI 组件:

  • 课程 7 - Web UI:使用 Lit 框架构建 Web Components 组件,实现属性绑定、事件系统和 Shadow DOM 封装,创建可复用的 UI 控件
  • 课程 18 - 使用 ECS 重构:使用 ECS(Entity-Component-System)架构重构核心系统,实现数据驱动设计,提升代码可维护性和性能
  • 课程 24 - 上下文菜单和剪贴板:实现自定义右键上下文菜单,集成 Clipboard API 实现复制、剪切、粘贴功能,支持 SVG 和 PNG 格式导出

还有一些有趣的话题:

  • 课程 17 - 渐变和重复图案:实现线性渐变、径向渐变和圆锥渐变,支持多色标配置,以及重复图案(pattern)填充
  • 课程 19 - 历史记录:实现命令模式(Command Pattern)的历史记录系统,支持撤销(undo)、重做(redo)和事务批量操作
  • 课程 22 - VectorNetwork:实现矢量网络(Vector Network)数据结构,支持 Figma 风格的矢量路径编辑,包括节点连接、路径合并和布尔运算

以及最重要的:

  • 课程 28 - 集成 AI 能力:集成 Vercel AI SDK,实现智能绘图助手,支持自然语言生成图形、图像矢量化、智能布局建议和 AI 对话交互

Released under the MIT License.