2013-12-22 2 views
0

C#에서는 Y 축에 대해 x1, y1, x2, y2가 주어진 두 점 사이의 각도를 계산하는 방법 (x가 왼쪽에서 오른쪽으로 y는 위에서 아래로 증가)?Y 축에 대한 두 점 사이의 각도 계산

+0

당신은 연필과 종이, 또는 다른 언어와 함께 할 것과 동일한 방법입니다. –

+1

Math.Atan2 (y2-y1, x2-x1) –

답변

3

이 시도 :

static double GetAngle(double x1, double y1, double x2, double y2) 
{ 
    var w = x2 - x1; 
    var h = y2 - y1; 

    var atan = Math.Atan(h/w)/Math.PI * 180; 
    if (w < 0 || h < 0) 
     atan += 180; 
    if (w > 0 && h < 0) 
     atan -= 180; 
    if (atan < 0) 
     atan += 360; 

    return atan % 360; 
} 

Demo

+0

정답을 반환하지 않습니다. 줄 : (1,1) (2,3)에 대해 ~ 63.4를 반환해야합니다. 반환 : 153.4 – ZiviMagic

+0

@ ZiviMagic, 당신 말이 맞아요. 답변을 업데이트했습니다. – Tony