2010-12-27 6 views
2

iOS/iPad 교육용 앱으로 2 시간 (시간 및 분)의 시계가 표시됩니다. 사용자가 시계면에 손가락을 대고 있으면 앞으로 또는 뒤로 움직여야합니다. 손가락 하나의 제스처 또는 회전 동작입니다.iOS 원형 터치 감지 (시계 방향 및 시계 반대 방향)

사용자가 시계 방향으로 시계 방향 또는 시계 반대 방향으로 손가락을 돌리고 있는지 확인하는 방법에 대한 아이디어가 있습니까?

각도를 계산 한 다음 각도를 30도라고 말하는 "섹션"으로 변환하는 방법에 대해 생각했습니다. 그런 다음 넘어지는 섹션 패턴을 봅니다.

"whiz bang"솔루션을 가지고있는 사람이 있는지 궁금 할뿐입니다. 아마도 뭔가 우아할까요?

감사합니다.

답변

0

제스처의 시작점을 0,0으로 지정하고 x 및 y 축을 공칭 0,0으로 실행하는 4 개의 사분면으로 화면을 나눕니다. 교대로 어떤 사분면이 방문하는지 주목하십시오. 당신은 적어도 세 가지 점을 유지하기 만하면 무엇

 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 
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 
} 
관련 문제