2014-09-24 7 views
1

내가 두 라디안라디안은 때때로/이성을 상실

function mrad(rb,ra){return (rb+ra)/2;} 

하지만 가끔은의 중간을 발견해야하는 기능이 반전 난으로, Math.sin과와 Math.cos 두 개의 지정된 길이 x와 y를 플롯 할 때 새로운 좌표가 내가 원하는 방향의 양극에서 나오고 있습니다.

예 : 새로운 포인트가 아래로 내려가는 것을 기대한다면 때때로 그들은 왼쪽 위로 올라오고 있습니다. 좌표는 이것과는 별도로 정확합니다! 여기

내가 라디안 B (RB)이 라보다 큰 경우이 문제가 수 있음을 추측하고있는 새로운 x와 y

xnew=xold-(100)*Math.cos(radian); 
xnew=yold+(100)*Math.sin(radian); 

음모 방법이다. 나는 내 질문

  1. 있습니다 내 가정이 정확 어떤 일이 일어나고 것은 내가 가끔 대신해야하는 반면

    function mrad(rb,ra){return (rb-ra)/2;} 
    

    같은 일을하고,이 경우 완전한 원을 가고 있다고 생각? 조건이 될 것입니다 무엇

  2. , RB + 라RB-RA을 할 때 확인하는 방법, 또는 더 나은 넣어 하나 라디안 위에서 가리키는 경우 어떻게 알 수 있습니까 또는 다른 노호?

이 뭔가를 보일 것이

function mrad(rb,ra){return ((/*condition*/)?(rb-ra):(rb-ra))/2;} 

편집

내가 라디안 범위를 찾기 위해 다른 값을 표현하기 위해 시도했지만보다 더 아무것도 찾을 수없는 범위를 찾으려면 대각선

http://jsfiddle.net/roLLqfs6/

또한 정의 된 길이는 예제에서 쓰여진대로 항상 100이 아닙니다.

+0

이 프로그래밍 관련 질문입니까? –

+0

err 예, 위의 코드가 있습니다^ – 8DK

+0

수학 질문과 같은 소리가납니다 ... –

답변

0

정말 수학 문제입니다. 각도가 동일한 범위 (-pi ... pi 또는 0 ... 2.0 * pi)에 있는지 확인해야하지만, 그렇다고하더라도 평균을 취하는 것이 반드시 원하는 각도를 찾지는 못합니다.) 10º & 20º에 대한 답은 15º이지만 175º와 -175º에서 당신은 무엇을 기대합니까? 나는 당신이 180 °를 원할 것이라고 생각합니다. (이것들은 그들 사이의 작은 호입니다.) 그러나 당신은 0 °를 얻을 것입니다.

그래서 차이가 180º (pi 라디안) 미만인지 확인하고 그렇지 않은 경우 응답을 수정해야합니다.