给定两个点,计算两点相对于正北方的角度

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;
}

 

标签: 角度计算

添加新评论