当前位置: 首页 > news >正文

C++计算两个向量之间的三角函数值(sin,cos,tan)

//计算向量角度 void calculateVectorAngle(double dir1[3], double dir2[3], double* sinVal, double* cosVal, double* tanVal) { // 计算点积 double dotProduct = 0.0; for (int i = 0; i < 3; ++i) { dotProduct += dir1[i] * dir2[i]; } // 计算向量模长 double mag1 = 0.0; double mag2 = 0.0; for (int i = 0; i < 3; ++i) { mag1 += dir1[i] * dir1[i]; mag2 += dir2[i] * dir2[i]; } mag1 = std::sqrt(mag1); mag2 = std::sqrt(mag2); // 计算余弦值 double cosValue = dotProduct / (mag1 * mag2); // 处理浮点精度问题,确保cos值在[-1, 1]范围内 if (cosValue > 1.0) cosValue = 1.0; if (cosValue < -1.0) cosValue = -1.0; // 计算正弦值 double sinValue = std::sqrt(1.0 - cosValue * cosValue); // 计算正切值 double tanValue; if (std::abs(cosValue) < 1e-10) // 避免除以零 { tanValue = (cosValue >= 0) ? 1e10 : -1e10; // 使用一个大数表示无穷大 } else { tanValue = sinValue / cosValue; } // 确定角度的正确象限 // 计算叉积的z分量(用于确定角度方向) double crossZ = dir1[0] * dir2[1] - dir1[1] * dir2[0]; // 如果叉积的z分量为负,说明角度大于180度,正弦值应为负 if (crossZ < 0) { sinValue = -sinValue; // 正切值也需要相应调整 if (std::abs(cosValue) >= 1e-10) { tanValue = sinValue / cosValue; } } // 通过指针将结果赋值给输出参数 *sinVal = sinValue; *cosVal = cosValue; *tanVal = tanValue; }
http://www.jsqmd.com/news/217237/

相关文章:

  • 【互联网产品助理的成长之路(7)】需求中止的判断方法
  • 【毕业设计】基于python_CNN卷积神经网络对甜点识别
  • elf 格式 relocation 概念
  • 计算机深度学习毕设实战-基于python-CNN卷积神经网络对盆栽识别
  • 5V供电 2A单节开关型锂电池充电芯片 XR4420
  • 给wordpress网站的图片加alt标签
  • 计算机三级-嵌入式组-考点汇总-嵌入式系统软件
  • 【实战案例】火语言RPA获取下拉联想推荐词
  • 2026 年用什么 CMS 做网站更合适?一些实际对比思考
  • 【行业深度】2025中国酒店业法务数字化转型洞察报告:大型集团如何破解“规模负重”难题?
  • 华为OD技术面真题 - 计算机网络 - 2
  • 深度学习毕设选题推荐:基于python-CNN卷积神经网络对盆栽识别
  • 计算机中的符号是什么意思?
  • 通信协议仿真:通信协议基础_(7).协议仿真的工具与软件
  • 导师严选8个AI论文写作软件,专科生搞定毕业论文+格式规范!
  • 导师推荐9个一键生成论文工具,自考本科生轻松搞定毕业论文!
  • SnapShot硬盘备份软件:一款小巧强大的德国军工级数据备份方案
  • mysql的分区表
  • 【干货收藏】RAG调优完整指南:从基础到GraphRAG,提升大模型回答准确率
  • 保姆级教程:使用Dify搭建知识库+Ollama部署本地模型,零基础也能轻松上手!
  • 最新APP导航下载页系统源码 带后台
  • 你画我猜计时答题对战房间酒馆互动神器H5开源
  • AI产品经理进阶指南+大模型全栈学习路线:104G资源包助你从零到实战
  • 深度学习毕设选题推荐:基于python_CNN卷积神经网络对甜点识别
  • 公众号图片圆角与阴影样式配置实战(以135编辑器为例)
  • 千寻运动助手V3.1小程序源码 全开源版
  • 基于C++Qt实现邮政客户投诉工单处理系统[2026-01-07]
  • 《计算机网络》深入学:组帧
  • MySQL数据误删或者误更新如何恢复(详细步骤,一看就会)
  • 空间计算开发者技能指南 2026