float getAngle(Point fromPoint, Point toPoint)
{
double len_y = toPoint.y - fromPoint.y;
double len_x = toPoint.x - fromPoint.x;
if( 0 == len_x && fromPoint.y <= toPoint.y )
{
return 0;
}
else if( 0 == len_x && fromPoint.y > toPoint.y )
{
return 180;
}
float angle = 0.f;
double tan_yx = tan_yx = std::abs(len_y)/std::abs(len_x);
if(len_y > 0 && len_x < 0)
{
angle = atan(tan_yx)*180/M_PI - 90;
}
else if (len_y > 0 && len_x > 0)
{
angle = 90 - atan(tan_yx)*180/M_PI;
}
else if(len_y < 0 && len_x < 0)
{
angle = -atan(tan_yx)*180/M_PI - 90;
}
else if(len_y < 0 && len_x > 0)
{
angle = atan(tan_yx)*180/M_PI + 90;
}
return angle;
}
通过传入的两个点计算他们之间的角度
最新推荐文章于 2023-04-17 16:16:49 发布