본문 바로가기
Programming

점 두개의 좌표를 가지고.. 그 점사이의 길이와 각도를 가져오는 코드

by 곰네Zip 2011. 10. 5.

double GetAngleAndLength(point pt1, point pt2, double& length)
{
 int xterm = pt2.x - pt1.x; //x좌표의 거리
 int yterm = pt2.y - pt1.y; //y좌표의 거리

 length = sqrt((double)(xterm * xterm) + (yterm * yterm));  //피타고라스의 정리를 이용. 길이를 구한다.
 double angle = 0;
 double sineValue = (double)yterm / length;  //sinA = 높이 / 직선의길이 (h/r)

 angle = asin(sineValue); //arc sine으로 A값을 구한다.

 if( xterm < 0)
 {
   if( yterm > 0)
  {
   angle = PI - angle; //2사분면
  }
  else
  {
   angle = ((-1) * PI) - angle; //3사분면
  }
 }
 return angle;
}

급하게 테스트용으로 만들어본거라.. 정확할지는 모르겠음. 그러나 대략 맞는듯?

반응형

댓글