3
A
回答
8
对于速度非常简单的手势(水平与垂直滑动),计算两次触摸之间x和y的差异。
dy = abs(y2 - y1)
dx = abs(x2 - x1)
f = dy/dx
f接近零是水平滑动。接近1的f是对角滑动。而一个非常大的f是一个垂直滑动(请记住,dx可能为零,因此上面的所有x和y都不会产生有效结果)。
如果你对速度感兴趣,pythagoras可以提供帮助。两次触摸之间的行驶距离的长度为:
l = sqrt(dx*dx + dy*dy)
如果触摸发生在时间t1和t2,速度是:
tdiff = abs(t2 - t1)
s = l/tdiff
它是由你来决定S的哪个值你解释为快或慢。
您可以将此方法扩展到更复杂的数字,例如您的方形可以是水平/垂直/水平/垂直滑动,其中前一次滑动停止的起点/终点。
对于更复杂的图形,最好使用理想形状。一个可以考虑的多边形形状的理想,并检查了一系列触摸
- 不必对pologyon的轮廓与其最接近的点太高的距离,
- 全触控遵循相同的方向沿着多边形的轮廓。
您可以从那里进一步修改。
0
确实存在其他方法来检测触摸屏上的非简单触摸。查看华盛顿大学的$ 1 unistroke手势识别器。 http://depts.washington.edu/aimgroup/proj/dollar/
它基本上是这样工作的:
- 重新取样所记录的路径到固定点的数量被均匀地沿路径
- 旋转的路径间隔开,使得所述第一点是直接连接到右的路径中心
- 将路径(非均匀)缩放到固定的高度和宽度
- 对于每个参考路径,计算输入路径中相应点的平均距离。具有最低平均点距离的路径是匹配。
最棒的是步骤1-3的输出是一个可以添加到已知手势阵列的参考路径。如果您认为合适,这可以非常轻松地提供应用程序手势支持并创建自己的一组自定义手势。
这已经被亚当·普雷布尔,在github上回购移植到iOS: http://github.com/preble/GLGestureRecognizer
相关问题
- 1. 在webview上检测触摸
- 2. 在NSOpenGLView上检测触摸
- 3. iPhone - 检测触摸UITableViewCell的子视图
- 4. 检测圆形触摸iPhone的SDK
- 5. 检测触摸哪一侧触摸在iphone中的openGLES 3dbox
- 6. iPhone屏幕锁定时检测触摸
- 7. 我如何检测触摸UIStatusBar/iPhone
- 8. iphone - 检测触摸媒体播放器
- 9. 检测触摸UIButton
- 10. 检测CAShapeLayer触摸
- 11. UINavigationItem:检测触摸
- 12. 在iPhone上的UIWebView中检测HTML5中的触摸<video>
- 13. 检测iphone或android上的触摸形状?
- 14. 检测屏幕上的触摸和保持IPhone(Xcode)
- 15. 如何检测iPhone屏幕键盘上的触摸
- 16. 在MacBookPro上检测多点触摸iPhone般的“点击”
- 17. 如何检测MPMoviePlayerViewController上的触摸
- 18. 检测UIWebview上的触摸事件?
- 19. 检测UILabel上的触摸事件
- 20. 检测位图上的触摸
- 21. AndroidPlot:检测点上的触摸事件
- 22. 检测UIView边框上的触摸
- 23. 检测UIScrollView下的触摸
- 24. 上的触摸事件iPhone
- 25. 检测上UIBezierPath中风触摸,不填
- 26. 在黑莓手机上检测触摸
- 27. 在UIImageView上检测到触摸背景
- 28. 在GUI纹理上检测触摸
- 29. 如何在UIWebView上检测触摸
- 30. 检测触摸次数
正确,有没有这样的库内置到苹果iPhone API。但是,这样的发展对于回馈社区会很好。检测形状是一件复杂的事情。 – Nolte 2009-02-12 19:58:15