//计算向量角度 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; }C++计算两个向量之间的三角函数值(sin,cos,tan)
张小明
前端开发工程师
计算机三级-嵌入式组-考点汇总-嵌入式系统软件
四、嵌入式系统软件1.硬件抽象层与板级支持包1-1. 硬件抽象层硬件抽象层(HAL)是在操作系统层与硬件之间设置的独立的接口软件层,是所有直接依赖于硬件的软件。对硬件进行抽象,使上层软件开发人员无须关心底层硬件的具体细节和差异,支持上层软…
提示工程架构师:自动化测试框架助力突破技术瓶颈
提示工程的“质检流水线”:用自动化测试框架突破AI应用的技术瓶颈 关键词 提示工程(Prompt Engineering)、自动化测试框架、AI应用质量、Prompt有效性、测试用例生成、结果评估、持续集成(CI/CD) 摘要 当我们谈论AI应用的“可靠性”时,往往忽略了一个关键环节——提示…
【课程设计/毕业设计】基于python_CNN卷积神经网络对甜点识别
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
深度学习毕设选题推荐:基于python_CNN卷积神经网络对甜点识别
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
mysql数据被误删的恢复方案
文章目录 一、使用备份恢复二、使用二进制日志(Binary Log)三、使用InnoDB表空间恢复四、使用第三方工具预防措施 数据误删是一个严重的数据库管理问题,但通过合理的备份策略和使用适当的恢复工具,可以有效地减少数据丢失的风险…
原来写英语论文涉及到这些问题都会被认定为学术不端啊!
近几年学术圈对于学术不端行为是严重的打压,无论是毕业论文还是小论文发表,只要出现了学术不端的行为,就将受到相应的惩罚。 同学们在写英文论文过程中,具体哪些行为属于学术不端行为呢? 主要表现有以下几个方面&…