c++计算两点之间的角度
给定两个点,计算两点相对于正北方的角度
double calAngle(const cv::Point& start, const cv::Point& end)
{
// 计算两点在X、Y轴上的差值
double dx = end.x - start.x; // X轴差值(右为正)
double dy = end.y - start.y; // Y轴差值(下为正)
// 计算相对于Y轴负方向(正北)的弧度值
// atan2(dx, -dy):dx对应水平分量,-dy对应垂直分量(向上为正)
double radians = atan2(dx, -dy);
// 弧度转换为角度
double angle_deg = radians * 180.0 / CV_PI;
// 将角度归一化到0~360°范围(处理负角度)
if (angle_deg < 0) {
angle_deg += 360.0;
}
return angle_deg;
}