P3-05 · @saier/pixi:触屏 / 手势(双指缩放 vs 单指画)
- Phase / ID: P3 / P3-05
- Depends on: viewport(现有 board/canvas pan/zoom)、P3-01(pointer 通道)
- Files:
packages/pixi/src/PixiViewport.ts、gesture 路由、test/ - Effort: M
- Status: 🟡(补 Risks #5① 缺口)
Context
绘画工具在触屏上的基本盘:单指 = 画,双指 = 平移 + 捏合缩放(+ 可选旋转)。要在 pointer 路由层把"手势"和"落笔"分开,否则双指会画出两道线。
Steps
- 多点 pointer 跟踪:
pointerType==='touch'时统计活跃触点数。 - 路由:1 个触点 → 落笔(走 P3-01 采样);≥2 触点 → 手势(pinch 缩放、双指拖动平移、可选旋转),并取消/回退已开始的单指笔迹(避免误画半截)。
- 缩放/平移复用现有 board/canvas viewport 变换(D7 overlay 层)。
- 笔 / 鼠标路径不受影响(
pointerType==='pen'|'mouse'直接落笔)。 - 防误触:手掌 palm rejection 可作后续(本卡先做基本双指)。
Acceptance
- [ ] 双指:能平移 + 捏合缩放,且不留下笔迹。
- [ ] 单指:正常画。
- [ ] 单指起笔后第二指落下 → 笔迹回退、转入手势(不残留断线)。
- [ ] 笔 / 鼠标行为未回归。
Out of scope
- palm rejection、双指旋转手感细调(后续)。