【发布时间】:2015-05-11 14:53:34
【问题描述】:
我在 XNA 应用程序中检测多点触控手势,这样屏幕上的某些“面板”可以接受其范围内的触摸点,然后根据用户手指的移动进行移动、缩放或旋转。
但是,由于屏幕是具有 10 多个触控点的大型多点触控屏幕,因此一个面板有时可以同时接受 5 个(甚至更多)手指,而我在网上找到的大部分内容仅限于使用 2 个手势的手势仅限接触点。
我已经通过计算某个面板上所有触摸的中心点来处理移动和缩放手势:
- 计算当前触摸的中心点(平均 x,平均 y)
- 计算先前时间戳触摸的中心点(平均 x,平均 y)
- 使用差异来移动和缩放面板。
但我不知道如何处理旋转。有没有一种算法可以快速获得这个(近似)旋转角度?我应该计算每个点与中心之间的角度,然后使用增量值吗?有没有更好的方法?
【问题讨论】:
标签: algorithm math rotation multi-touch gestures