我正在尝试使用 c++ 通过中心点确定两点之间的角度。我正在使用 std::atan2(y,x) 来获取角度。为简洁起见,我将弧度转换为度数。这工作正常。
但是,当两点的位置发生变化时,我的问题在于符号的变化。给定的角度是 -200 或 160。当然,这是 360 度外的相同角度。我宁愿只使用相同的值来进行比较检查。我怎样才能做到这一点?
我用来计算角度并转换为度数的函数:
static double computeAngleFromCenter(cv::Point center, cv::Point p, bool asDegrees = false)
{
double angle = std::atan2(p.y - center.y, p.x - center.x);
if (asDegrees)
angle *= 180 / 3.1415926;
return angle;
}
显而易见的答案是,如果角度 < 0,只需添加 360,但这是最好的方法吗?