检测转动轮iPhone的方向

时间:2013-01-22 17:05:36

标签: iphone ios

我的屏幕上有一个轮子,它可以旋转。当用户在车轮上滑动时,它应该基于滑动方向开始旋转。除旋转方向(顺时针或逆时针)外,我完成了所有功能。任何人都可以帮我找到用户在方向盘上滑动的方向。

由于

2 个答案:

答案 0 :(得分:0)

轮换是

解决方案1:

<强>顺时针

  • 如果触摸点在轮子中心上方并且滑动是从小触摸点x到更大的x。或
  • 如果point.y低于车轮中心并且滑动是从更大的点x到更小的x。

逆时针:
 反对者:

  • 如果point.y低于车轮中心并且滑动是从小触点x到更大的x。或
  • 如果point.y高于车轮中心并且滑动是从更大的点x到更小的x。

有更好的解决方案,数学更复杂,但一个是简单的。

更新这个更简单,也更好!

解决方案2:

计算车轮中心(x,y)与触摸(x,y)之间的角度:

 double angleRad =   atan2(dy/dx), where dy = touch.y - wheel.y, and dx analog.

为每个触摸事件执行此操作:如果角度增加,则顺时针旋转,否则逆时针旋转

答案 1 :(得分:0)

_direction = 1;
if(_startPoint.y < rotarCenter.y) {

    if(_startPoint.x > endTouchPoint.x)
        _direction = -1;
}
else if(_startPoint.y > rotarCenter.y) {

    if(_startPoint.x < endTouchPoint.x)
        _direction = -1;
}

if(_startPoint.x < rotarCenter.x && endTouchPoint.x < rotarCenter.x) {

    if(_startPoint.y < endTouchPoint.y)
        _direction = -1;
    else
        _direction = 1;
}
else if(_startPoint.x > rotarCenter.x && endTouchPoint.x > rotarCenter.x) {

    if(_startPoint.y > endTouchPoint.y)
        _direction = -1;
    else
        _direction = 1;
}