使用 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。他们将弧度转换为度数,将度数转换为弧度。
我正在使用 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。他们将弧度转换为度数,将度数转换为弧度。