Unity Mathf【Deg & Rad】- 关于数学运算中的度与弧度

Mathf中的三角函数是我们常用的数学运算函数,在使用过程中需要注意参数的单位,以Sin正弦函数为例,我们都知道30度角的正弦函数结果为0.5,那么当我们调用Mathf.Sin函数时,假如我们传入30,则可以发现其结果并不是0.5:

Debug.Log($"Mathf.Sin(30) => {Mathf.Sin(30f)}");

原因是其参数并不是以Degree度为单位,而是以Radians弧度为单位:

// 摘要:
//     Returns the sine of angle f.
// 参数:
//   f:
//     The input angle, in radians.
// 返回结果:
//     The return value between -1 and +1.
public static float Sin(float f);

那么什么是弧度,百科词条中这样定义:弧长等于半径的弧,其所对的圆心角为1弧度。(即两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角的弧度为1)。

根据定义,一周的弧度数为2πr/r,即2π,那么1度等于2π/360,约等于0.01745弧度。

因此我们在调用Mathf.Sin时,假设角度为30度,那么需要乘以近似值0.01745再作为参数传入,Mathf类中定义了这个常量,即Deg2Rad(度转弧度):

// 摘要:
//     Degrees-to-radians conversion constant (Read Only).
public const float Deg2Rad = 0.0174532924F;
Debug.Log($"Mathf.Sin(30f * Mathf.Deg2Rad) => {Mathf.Sin(30f * Mathf.Deg2Rad)}");

Mathf中同样定义了弧度转度的常量,Rad2Deg:

// 摘要:
//     Radians-to-degrees conversion constant (Read Only).
public const float Rad2Deg = 57.29578F;

那么我们在使用反正弦函数时,需要用到该常量:

// 摘要:
//     Returns the arc-sine of f - the angle in radians whose sine is f.
// 参数:
//   f:
public static float Asin(float f);
Debug.Log($"Mathf.Asin(0.5f) * Mathf.Rad2Deg => {Mathf.Asin(0.5f) * Mathf.Rad2Deg}");

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoderZ1010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值