2013-10-19 2 views
2

양의 정수를 출력하는 회전 휠을 구현하려고합니다. - 시계 방향으로 회전 할 때 sizeof (int) - 회전 할 때 sizeof (int) - 회전 할 때 sizeof 반 시계 방향. 어디에서 결정하는각도가 360도 이상인 경우 기울기 대신 회전 각도 계산

continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event

그것은 경사각을 계산 atan2f() 함수를 사용하여 어떤 연산을 수행 I는 here 출력 께 SMRotaryWheel 구현에있어서 발생있어 라디안 값을 발견 일하고 회전 할 2Pi 라디안의 범위.

내가 겪고있는 문제는 기울기 각도 만 측정했기 때문에 출력 범위는 +/- pi 범위 이내입니다.

360도 이상의 각도에서 경사각 대신 회전 각도를 계산하는 함수 (함수)가 있습니까?

+0

나는 당신과 같은 문제가 있습니다. 해결 했습니까? – SeanChense

+0

@SeanChense 불행히도 나는하지 않았다. 나는 로터리 휠 아이디어를 포기했다. 그것은 중요한 UI가 아니 었습니다. 답을 찾으면 답을 게시하십시오. – Nick

답변

0

편집 : 원래 설명을 잘못 해석했습니다. (0,1)은 π/2이고, (-1,0)은 π (0, -1)은 3,/2이고, (1,0)은 0,039이고, (1,0)은 2 π (또는 0)입니다.

설정이 III에서 IV로 넘어가는 것은 π에서 0으로 넘어 가고, I에서 II로 넘어가는 것은 0 ~-π입니다. 그래서,

psuedocode을 한 후, π 0으로 II에 I 변경이 π에 π에 IV에 III를 변경하려면 ({θ | - π < θ < π} 입력 θ의 범위는 가정)

function inclination2rotation(θ) 
{ 
    if (θ <= 0) 
    { 
     return -θ; 
    } 
    if (θ > 0) 
    { 
     return -θ+2π; 
    } 
} 
+0

감사! 제가 고심하고있는 것은 휠을 시계 방향으로 회전하기 시작할 때 (좌표 평면의 사분면 4와 3을 지나면) 라디안 값이 0에서 pi로 이동한다는 것입니다. 내가 사분면 3에서 사분면 2로 임계 값을 건너 자마자 라디안 값은 원래의 시작점에 도달 할 때 -pi로 뒤집어 0으로 되돌아갑니다. 라디안에 2pi를 추가 할시기를 결정할 방법이 필요하지만 나는 혼란 스럽습니다. – Nick

+0

은 2pi를 추가하기 전과 후의 제안입니까? – chiliNUT

+0

2pi를 추가하기 전입니다. – Nick