如何检测使用uigeSturerecognizer

问题描述 投票:0回答:6

我认为答案取决于您对循环运动的定义以及您打算如何使用它。 例如,您是否想知道用户手指旅行的圆圈有多少个度? 或者,您只关心一个圆圈完成吗? 您需要的准确性程度是多少? 您是否要允许动作被中断,或者必须更多地是触摸式>绘制circle> tount-town(换句话说,单个运动)?

一种方法是沿周长定义一堆矩形区域,并检测用户是否按顺序触摸这些区域。 这可以为您提供方向和角度的粗略指示。 另一个方法是存储降落和修饰之间的点,并进行一些过滤和曲线拟合,以找出点近似的形状。 首先使用基本的FIR过滤器首先使用低通滤波器,然后从点到点查看DX和DY。 一个圆(作为一系列弧)必须落在一定范围内的斜率变化范围内,否则您会有其他形状。 另一种方法是使用神经网络获取要点并告诉您形状的外观。
iphone objective-c ios uigesturerecognizer
6个回答
4
投票

我认为这可能是您需要的

如何通过手势识别器检测圆形手势?

使用手势识别器iNSTEAD,该项目对追踪事件角度的圆形运动做出反应。


2
投票

i使用了以下方式:

Http://iphonedevelvement.blogspot.com/2009/04/detecting-circle-gesture.html

..但将CircleView变成了自定义的UigeStureroctizer。一切可爱


1
投票
没有,它并不识别出本性的循环运动。 您必须实施自己的方法才能做到这一点。

在这里,我需要使用视图控制器中的触摸回调进行操作,但这也可以将其制成一个手势。请注意,我试图检测多个圆圈(在触摸事件中进行的2个或更多顺时针或逆时针圆圈。

储备在数组中触摸cgpoints。

创建了历史记录数组中所有点的最小/最大值。

1
投票
使用cgrectcontainspoint()为4个象限中的每个象限分配一个象限

顺时针运动将有象限上升。逆时针运动将使象限下降。

请检查宽度/高度的比率,如果要检测到圆与椭圆形

用于“用手指的循环运动手势”的剂量解决方案。

非常简单


0
投票
假设

我们知道圆圈的

中心在哪里。 (这是完全不足为奇的,在手机上。

0
投票
,而从中心向上的线。 这是整个事情。 您经常添加以下想法:

  1. 如果第一次放下时,手指太近了,那是不好的,忽略,不要开始手势
  2. 如果手指在手势过程中靠近中心,那就结束手势(就像您已经超出了控件之外)。
  3. 如果您不知道中心在哪里(在某种大型设备上想象中心);圈子可能是大小的。没有完美的解决方案。您基本上要试图检测任何大小的圆。一种简单的方法是,一旦它在
  4. 方向上移动一定数量(即,用户绘制了vert或hori线),您就可以猜测中间的位置。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.