我计算了三角形的角度,但我不明白为什么对于某些锐角,我会得到负角度。例如:
var sin = Math.Sin(4.45);
var radians = Math.Atan(sin);
var angle = radians * (180 / Math.PI);
则返回CCD_ 1和CCD_。
当科学计算器显示sin = 0.0775
时
我的三角形有这样的长度6.22
、6.07
和1.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