我有以下代码:

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像this那样找到角度,但是当我打印例如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

最佳答案

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

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

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

09-17 12:27