admin 发表于 2024-10-6 16:46:26

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]
查看完整版本: c++ 计算两个向量夹角的正弦值