使用 C# 将弧度转换为度数

Converting radians to degrees with C#

我正在使用 C# 在 Unity 中创建一个小游戏,我不允许使用任何内置的物理或碰撞器。我有一个平台,上面有一个重物。使用箭头键,您可以倾斜平台角度。然后,顶部的重量应根据给定的倾斜角度做出相应的反应。我已经用摩擦力、最大摩擦力、法向力 a.s.o 计算了一切。不起作用的是当你按下一个键来改变倾斜度时,物体上的力应该相应地改变,如果重物上的力大于最大摩擦力,那么重物应该移动。这是我的代码的一个简化示例。

public float m = 35;

public float µ = 0.15f;

public float g = 9.82f; //(N/kg)

public float N;

public double deg = 0;

Fmax = m * g * µ;

if (Input.GetKeyDown(KeyCode.UpArrow)) {
   deg++;
   N = m * g * µ * (Math.Cos(deg) * (180.0 / Math.PI));
   platform.transform.Rotate(0, 0, deg, Space.Self);

} else if (Input.GetKeyDown(KeyCode.DownArrow)) {
   deg--;
   N = m * g * µ * (Math.Cos(deg) * (180.0 / Math.PI));
   platform.transform.Rotate(0, 0, deg, Space.Self);
}

if(N > Fmax) {
 // Do the rest of the code
}

我认为问题与 Math.Cos(deg) 将 deg 转换为弧度有关,但我试图用 (180.0 / Math.PI) 将 reg 转换回 deg。我可以让所有东西在我的计算器上运行,但不能在代码中运行。

这是不正确的:

   N = m * g * µ * (Math.Cos(deg) * (180.0 / Math.PI));

如果角度以度为单位,则必须将其转换为弧度并传递给余弦函数:

double rad = deg*Math.PI/180.0;
N = m*g*mu*Math.Cos(rad);

您可以使用 Mathf.Deg2Rad 和 Mathf.Rad2Deg 常量轻松地将弧度转换为度数以及将度数转换为弧度

using UnityEngine;

public class Example : MonoBehaviour
{
    // convert 1 radian to degrees

    float rad = 10.0f;

    void Start()
    {
        float deg = rad * Mathf.Rad2Deg;
        Debug.Log(rad + " radians are equal to " + deg + " degrees.");
    }
}

有一个超级方便的函数,叫做 Mathf.Rad2Deg 和 Mathf.Deg2Rad。他们将弧度转换为度数,将度数转换为弧度。