找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 25|回复: 0

c++ 计算两个向量夹角的正弦值

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-10-6 16:46:26 | 显示全部楼层 |阅读模式
  1. // 计算两个向量夹角的正弦值
  2. static double sineOfAngleBetweenVectors(const AcGeVector2d& v1, const AcGeVector2d& v2) {
  3.         // 计算向量的模长
  4.         double mag_v1 = std::sqrt(v1.x * v1.x + v1.y * v1.y);
  5.         double mag_v2 = std::sqrt(v2.x * v2.x + v2.y * v2.y);
  6.         // 避免除以零的情况
  7.         if (mag_v1 == 0.0 || mag_v2 == 0.0) {
  8.                 return 0.0; // 如果任一向量长度为0,则认为夹角的正弦值为0
  9.         }
  10.         // 计算两个向量的叉积
  11.         double cross_prod = v1.x * v2.y - v1.y * v2.x;
  12.         // 计算并返回夹角的正弦值
  13.         return cross_prod / (mag_v1 * mag_v2);
  14. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-27 06:55 , Processed in 0.116056 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表