角度sin返回锐角的负结果

  • 本文关键字:结果 sin 返回 角度 c# math
  • 更新时间 :
  • 英文 :


我计算了三角形的角度,但我不明白为什么对于某些锐角,我会得到负角度。例如:

var sin     = Math.Sin(4.45);
var radians = Math.Atan(sin);
var angle   = radians * (180 / Math.PI);

则返回CCD_ 1和CCD_。

当科学计算器显示sin = 0.0775

我的三角形有这样的长度6.226.071.4,那么就没有负角的选项。

Math.Sin对弧度进行运算。您需要将度数转换为弧度。

要将度数转换为弧度,请将角度乘以𝜋/180:

var sin = Math.Sin(4.45*Math.PI/180);
// output 0.07758909147106598

您的代码的其余部分应该保持不变。

注意:如果您只想将角度(度(转换为角度(弧度(,可以使用上面的公式:

var degrees = 4.45;
var radians = degrees * Math.PI/180;

让我们借助余弦定律计算三角形的角度:

a**2 + b**2 - 2 * a * b * cos(gamma) == c**2

所以

gamma = acos((a * a + b * b - c * c) / (2 * a * b))   
beta  = acos((a * a + c * c - b * b) / (2 * a * c))   
alpha = acos((c * c + b * b - a * a) / (2 * c * b))   

现在放入三角形长度

a = 6.22
b = 6.07
c = 1.40

转换为上面的公式,您将获得角度(如果使用c#Math.Acos,则以弧度为单位(

alpha = 1.5639 =  89.6 degrees
beta = 1.3506 =  77.4 degrees
gamma = 0.2270 =  13.0 degrees
------------------------------
180.0 degrees (let's check ourselves)

另一个检查是正弦定律

a / sin(alpha) == b / sin(beta) == c / sin(gamma) == 6.2201

最新更新