2013-02-17 6 views
4

첫째로, 나의 수학은 강하지 않다! 하지만 원점 (0, 0)에서 (-1, -1)까지 점의 각도를 계산했습니다.Math.Atan2가 이상한 결과를 산출합니까?

이 각도는 225 ° 또는 5π/4입니다.

  • 5π/4 = 3.9269908169872415480783042290994
  • Math.Atan2 (-1, -1) -2.3561944901923448

는 아마도 Math.Atan2에 대한 이해가 잘못된 =하지만이 정도를 반환하는 의미라고 생각 원점이 (0, 0) 인 원에 두 점이 주어진 각도. 내가 여기서 추측하고있는 것은 Atan2의 결과가 X 축의 네거티브 측에 있기 때문에 "뒤집 혔"다는 것입니다 ... 누군가가 이것을 확인하고 적절한 방법을 제공 할 수 있습니까?

Assert.AreEqual((5 * Math.PI)/4, Math.Atan2(-1, -1)); 

을 그리고 여기에 포인트 X 및 Y 보유하고 내 PointD 클래스의 :

public double ToRadians() 
{ 
    double radians = Math.Atan2(this.Y, this.X); 

    return radians; 
} 

답변

13

귀하의 가정이 정확이

실패 내 테스트입니다. Atan2은 -pi에서 + pi 사이의 결과를 제공합니다. * 당신은 결과가 0보다 작은


참고 경우 2pi의 범위 0의 숫자, 그냥 2pi를 추가하려면 다음이 보통 아니다처럼 부동 소수점 값을 지 어떤지를 어서 트 좋은 생각은 ...


*

향후 참고로, 세부의이 종류는 일반적으로 문서에 명시 적으로 부여됩니다. 예 : http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx.

+0

고맙습니다. 솔직히, 나는 함수를 찾았지만 꽤 수학 밀도가 높았고 영어로 철자를 쓰는 것이 훨씬 쉽습니다! –

관련 문제