azzlzzxz / Whiteboard

白板

Home Page:https://vcxz.cc/jiwei/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Whiteboard

项目介绍

整个项目使用 Typescript 实现,采用化整为零的方案,Whiteboard 只用维护画布、全局数据、事件中心,其他部分均可,以组件形式接入。 图形部分: 只需要实现图形抽象类上的方法,就可以接入 Whiteboard ,画笔移动的时候会传入,画笔坐标,画布上下文,事件中心参数给当前类,既可以自定义画布内容。

操作 UI: 在 Whiteboard 在初始化的时候,会自动实例化传入的 UI 组件类,并调用 createEl,传入 Whiteboard 的 操作层 container 节点,和 Whiteboard 实例, UI 组件类既可以自定义内容。


架构图

架构2


支持的功能有

  1. 序列化操作历史记录,支持撤销/重做
  2. 手写笔,笔记支持压感(根据点与点之间的距离模拟)
  3. 橡皮擦掉所有图形的碰撞检测
  4. 支持实现抽象类的图形,接入画布,默认实现图形: 矩形、图片、文字、手写
  5. 支持图形的选中后拖拽、放大、缩小操作
  6. 支持组件形式,创建 dom,自动添加到画布最上层,用来定制各种操作 UI
  7. 双击触发文案输入, 失去焦点,写入画布
  8. 支持选取前画布上的区块,生成图片
  9. 实例可以实时监听,画布上包装过得事件(实时同步场景),上报服务端
  10. 支持自动适应屏幕大小、手机 pc 不同规格屏幕

About

白板

https://vcxz.cc/jiwei/


Languages

Language:TypeScript 97.1%Language:JavaScript 2.9%