【问题标题】:iOS Detect Circular Touches (Clockwise and Counter Clockwise)iOS 检测圆形触摸(顺时针和逆时针)
【发布时间】:2010-12-27 19:58:54
【问题描述】:

我正在开发一个 iOS/iPad 教育应用程序,该应用程序将显示一个带有 2 针(小时和分钟)的时钟。当用户在钟面上旋转手指时,我想向前或向后移动时间。这将是一个单指手势或旋转动作。

关于如何判断用户是绕着圆形钟面顺时针还是逆时针旋转手指有什么想法吗?

我考虑过计算角度,然后将角度转换为 30 度的“部分”。然后观察跳闸部分的模式。

只是想知道是否有人有我没有考虑的“神童”解决方案? 也许是优雅的东西?

谢谢。

【问题讨论】:

    标签: ios4 cocos2d-iphone


    【解决方案1】:

    你需要做的是至少保留三个点,然后计算它们形成的“三角形”的面积。

    CGPoint a = lastStart;
    CGPoint b = start;
    CGPoint c = end;
    float area = a.x * b.y - a.y * b.x + a.y * c.x - a.x * c.y + b.x * c.y - c.x * b.y; 
    
    if(area > 0) {
      // you're moving CCW
    }
    

    【讨论】:

      【解决方案2】:

      将手势的起点设为标称 0,0,并将屏幕分成四个象限,x 和 y 轴穿过标称的 0,0。注意依次访问了哪些象限。在前两个之后,你就有了方向性:

             Movement into lower right quadrant followed by movement into upper right is counterclockwise
             Movement into lower right quadrant followed by movement into lower left is clockwise
             Movement into lower left quadrant followed by movement into lower right is counterclockwise
             Movement into lower left quadrant followed by movement into upper left is clockwise
             Movement into upper left quadrant followed by movement into lower left is counterclockwise
             Movement into upper left quadrant followed by movement into upper right is clockwise
      
             etc etc
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 2012-12-11
        • 1970-01-01
        相关资源
        最近更新 更多