c++ 计算两个向量夹角的正弦值
// 计算两个向量夹角的正弦值static double sineOfAngleBetweenVectors(const AcGeVector2d& v1, const AcGeVector2d& v2) {
// 计算向量的模长
double mag_v1 = std::sqrt(v1.x * v1.x + v1.y * v1.y);
double mag_v2 = std::sqrt(v2.x * v2.x + v2.y * v2.y);
// 避免除以零的情况
if (mag_v1 == 0.0 || mag_v2 == 0.0) {
return 0.0; // 如果任一向量长度为0,则认为夹角的正弦值为0
}
// 计算两个向量的叉积
double cross_prod = v1.x * v2.y - v1.y * v2.x;
// 计算并返回夹角的正弦值
return cross_prod / (mag_v1 * mag_v2);
}
页:
[1]