Mathf 学习和应用

Mathf 也是很常用到的一个Struct
里面有所有数学计算时需要用到的函数。现在就逐一介绍给大家。

首先是 Class Variables

PI=π=3.1415926.....小学的小朋友们都知道的

Infinity  无穷大,∞
NegativeInfinity 无穷小,-∞

Deg2Rad    Degrees to Radians conversion constant, =π*2/360。 把一个角的单位从度转换到弧度。 
弧度的定义是π=3.1415926.....=180°
弧度是如何来的大家可以去百度等网站自行搜索。这个东西主要与三角函数的应用有关系。
Rad2Deg  Radians to Degrees conversion constant 把一个角的单位从弧度转换为度,与Deg2Rad作用相反。

Epsilon 一个很小的浮点值,由于浮点类数值的不精确,低于此的数值都不会有很大作用。

以上都是Read Only,只能看不能改滴~

接下来就到大家常用的函数部分了

三角函数部分
Sin Cos Tan Asin Acos Atan Atan2
知道的人就知道,不知道的说了是什么你也不知道。

static function Sqrt (f : float) : float  返回f的二次方


static function Abs (f : float) : float  返回f的绝对值


static function Min (a : float, b : float) : float  返回a,b中最小的那个值


static function Max (a : float, b : float) : float 返回a,b中最大的那个值。如果你希望一个值大于a小于b(b>a),使用clamp


static function Pow (f : float, p : float) : float  返回f的p次方


static function Exp (power : float) : float 返回e的power次方


static function Log (f : float, p : float) : float 返回f的对数,基数为p

static function Log (f : float) : float  返回f的对数,基数为e


static function Log10 (f : float) : float 返回f的对数,基数为10


static function Ceil (f : float) : float 把浮点变成离自己最近的比自己大的整数浮点,比如 Ceil(3.75)=4  Ceil(3.05)=4


static function Floor (f : float) : float 把浮点变成离自己最近的比自己小的整数浮点,比如Floor(3.75)=3  Floor(3.05)=3 


static function Round (f : float) : float 对f进行四舍五入然后返回一个浮点


static function CeilToInt (f : float) : int  先Ceil然后返回一个整数


static function FloorToInt (f : float) : int 先floor然后返回一个整数


static function RoundToInt (f : float) : int 先四舍五入然后返回一个整数 

其实大家直接让int answer=Mathf.Ceil(f); 之类的写法也可以,返回的值可以被强制转换成int,不会报错。

static function Sign (f : float) : float 返回f的正负。 如果f是正数,返回1。如果f是负数,返回-1。


static function Clamp (value : float, min : float, max : float) : float 

static function Clamp (value : int, min : int, max : int) : int

限制value的值在min和max之间, 如果value小于min,返回min。 如果value大于max, 返回max.否则返回value

static function Clamp01 (value : float) : float

限制value在0,1之间, 如果value小于0,返回0。如果value大于1,返回1。否则返回value

static function Lerp (a : float, b : float, t : float) : float 返回一个数值f,f处于a,b之间,比值为t:1  即f=a+(b-a)*t  t[0,1]


static function LerpAngle (a : float, b : float, t : float) : float 同lerp一样但是可以处理角度的问题,在0°-360°之间循环时不会出错。


static function SmoothStep (from : float, to : float, t : float) : float 同Lerp一样但是在接近from和to的时候改变速度会变慢。

我理解类似一个以o为圆心的圆周运动物体的x轴的速度变化。

static function Approximately (a : float, b : float) : bool 用来判断两个浮点数是否非常接近。因为浮点的不精确性,如果使用==

来判断两个数是否相等, 如 1.0== 10.0/10.0, 有可能被认为不相等而不会返回true。所以当比较两个浮点是否相等时,建议大家用这个函数而不是 ==

static function SmoothDamp (current : float, target : float, ref currentVelocity : float, smoothTime : float, maxSpeed : float Mathf.Infinity, deltaTime : float =Time.deltaTime) : float


逐渐的返回一个值从current一直到target。

该值是平滑的使用了一些类似弹簧阻尼功能的算法,使他永远不会跑过头。这个函数可以被用来平滑位置、颜色、缩放等很多种数值。最常用的是用来平滑一个正在跟随中的摄像机。
current是现在的位置,target是目标位置。currentVelocity是现在的速度,这个值随着你每一帧的使用而被这个函数所修改。smoothTime是大概的从current到达target的时间,数值越小到达的target的时间越快。maxSpeed保证移
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值