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;
}
급하게 테스트용으로 만들어본거라.. 정확할지는 모르겠음. 그러나 대략 맞는듯?
반응형
댓글