使用C#中的Arcsin计算正交三角形的角度

本文关键字:三角形 中的 Arcsin 计算 使用 | 更新日期: 2023-09-27 17:58:06

我有以下代码:

double x = sw.bonePos[0, (int)Bones.HipCenter].x;
double z = sw.bonePos[0, (int)Bones.HipCenter].z;
double hypotenusePower2 = Math.Pow(x, 2) + Math.Pow(z, 2);
double hypotenuse = Math.Sqrt(hypotenusePower2);
double angle = Math.Asin(z / hypotenuse);

我知道x,z, hypotenuse是正确的,z / hypotenuse是正确的因为它总是在-1和1之间。所以我想像这样使用ArcSin来找到角度,但当我打印例如Math.Asin(1)时,结果是1.5707。。。我用错函数了吗?C#中有返回角度的函数吗?

输入/输出示例:

x: -0.000844396417960525 
z: 0.857428431510925 
hypotenuse: 0.857428847292063 
angle: 1.5698115260652

x: 0.0198930986225605 
z: 0.849016189575195 
hypotenus: 0.849249212854266 
angle: 1.54736984845028

使用C#中的Arcsin计算正交三角形的角度

您得到的结果是正确的-1asin是π的一半,或者大约是1.5707弧度。

返回角度的函数通常以弧度为单位返回结果。如果你需要以度数为单位的结果,你需要将结果转换如下:

double degrees = angle * ( 180 / Math.Pi );
这是正确的答案。生成的角度以弧度为单位进行测量。因此CCD_ 7应当等于π2&大约;1.5707弧度,与您的结果相匹配。

如果需要以度为单位的值,请乘以180/π。在这种情况下,π2*180/π会给你90度:

double degrees = radians * (180 / Math.Pi);