Ink-Canvas icon indicating copy to clipboard operation
Ink-Canvas copied to clipboard

综合性的触摸优化问题和解决方案

Open clover-yan opened this issue 11 months ago • 0 comments

本议题主要关注影响 Ink Canvas 触摸使用体验的重大问题,并且给出相应的可能解决方案。

主要问题

  1. 缩放/旋转太灵敏,会在写字/移动时被触发。
  2. 使用「手掌橡皮」时,橡皮大小会不断改变,并且会触发移动/缩放/旋转。

可能的对应解决方案

  1. 对于写字时的触发,可以考虑类似希沃的落笔一段时间之后转为多指书写的模式,暂未想到实现; 对于移动时的触发,可以设定全局的 manipulateMatrix (Matrix)、doZoom (bool)、doRotate (bool)。当接收到 ManipulationDelta 时将 manipulateMatrix Multiply 以当前 Manipulation 操作的 m Matrix。如果缩放/旋转量超过一定阈值,则设置 doZoomdoRotate 为 true,并归零 manipulateMatrix,根据 doZoomdoRotate 的真假进行缩放。当结束操作时(ManipulationInertiaStarting),重设 manipulateMatrixdoZoomdoRotate
  2. 当第一次触发 Main_Grid_TouchDown 并且符合手掌橡皮的大小时,用全局变量记录橡皮大小以及此时时间。此后如果再触发任何 TouchDown 事件并且距离上次触发未经过 500 毫秒(类似 #109),则沿用上次大小;如果再触发任何 ManipulationDelta 事件并且距离上次触发未经过 500 毫秒,则不处理移动/缩放/旋转。

clover-yan avatar Mar 09 '24 11:03 clover-yan