我在想是否有在线示例,涵盖了如何检测触摸手势中的形状。
例如矩形或圆形(或更复杂的心形..)
或确定滑动速度(随时间变化(就像我用iPhone以50mph滑动))
我在想是否有在线示例,涵盖了如何检测触摸手势中的形状。
例如矩形或圆形(或更复杂的心形..)
或确定滑动速度(随时间变化(就像我用iPhone以50mph滑动))
对于非常简单的手势(水平 vs. 垂直滑动),计算两个触摸之间的 x 和 y 差异。
dy = abs(y2 - y1)
dx = abs(x2 - x1)
f = dy/dx
当 f 接近于零时,表示水平滑动。当 f 接近于 1 时,表示对角线滑动。而当 f 非常大时,则表示垂直滑动(请注意,dx 可能为零,因此上述结果并不适用于所有 x 和 y)。
如果您关注速度,可以使用勾股定理来帮助计算。两个触点之间的距离长度为:
l = sqrt(dx*dx + dy*dy)
tdiff = abs(t2 - t1)
s = l/tdiff
由你来决定将 s 的哪个值解释为快或慢。
对于更复杂的图形,比如说你的正方形形状可以是一个水平/垂直/水平/垂直的滑动,起始/结束点在上一个滑动停止的地方。
对于更复杂的图形,最好使用理想化的形状。可以将多边形形状视为理想形状,并检查一系列触摸是否:
您可以从那里进一步完善。
在触摸屏上检测非简单的触控操作还存在其他方法。可以查看华盛顿大学的$1单笔手势识别器。
http://depts.washington.edu/aimgroup/proj/dollar/工作原理如下:
棒极了的是,步骤1-3的输出是可添加到已知手势数组中的参考路径。这使得轻松为您的应用程序提供手势支持并创建自己的自定义手势集变得非常容易。
Adam Preble已将其移植到iOS中,存储库在github上: http://github.com/preble/GLGestureRecognizer