TA的每日心情 | 开心 昨天 06:36 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
管理员
- 积分
- 1308
|
- // 计算两个向量夹角的正弦值
- 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);
- }
复制代码 |
|