You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现cos inverse(反余弦)计算 余弦定理求角的C#代码问题

反余弦功能实现方案(C#)

C# 系统类库中的 Math 类已经内置了反余弦方法,名为 Math.Acos(),你原来的代码混淆了正余弦和反余弦的调用逻辑:Math.Cos 是输入弧度值求对应余弦值,而你的需求是输入余弦比值求对应角度,刚好是逆运算,直接替换方法即可。

调整后的实现代码

// 第一步:用余弦定理计算出目标角的余弦值
double cosOfAngle = (DeltaY * DeltaY + Hyp * Hyp - DeltaX * DeltaX) / (2 * Hyp * DeltaY);

// 可选但推荐:浮点数计算可能存在精度误差,将值钳位到[-1,1]区间,避免返回NaN
// 若运行环境不支持Math.Clamp,可替换为 cosOfAngle = Math.Max(-1.0, Math.Min(1.0, cosOfAngle));
cosOfAngle = Math.Clamp(cosOfAngle, -1.0, 1.0);

// 第二步:调用反余弦方法得到弧度制角度
float angleRadian = (float)Math.Acos(cosOfAngle);

// 若需要角度制结果,补充转换逻辑即可
float angleDegree = (float)(angleRadian * 180 / Math.PI);

注意事项

  • Math.Acos 的返回值为弧度制,范围在 [0, π] 之间,符合余弦定理计算三角形内角的场景
  • 必须确保传入 Math.Acos 的参数落在 [-1, 1] 区间内,否则方法会返回非数值(NaN),加钳位逻辑可以避免浮点数精度问题导致的异常

内容的提问来源于stack exchange,提问作者Otto Francis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:57:00