查看: 1001|回复: 0
打印 上一主题 下一主题

[其他] Unity中的基础数学(二)

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2015-7-30 21:42:33 |只看该作者 |倒序浏览

Mathf 数学运算:基本运算

        Mathf.Ceil()   向上取整  例如 Mathf.Ceil(10.2f) 得到的是 11  Mathf.Ceil(-10.2f) 得到的是  -10
        Mathf.floor()   向下取整   同上相反  10.2f  得到 10   -10.2 得到的是 -11
        Mathf.Round()  向近取整   10.2 得到 10  , 10.6 得到 11  那么 如果是 10.5  则取决于个位数的奇偶性  如果个位是 奇数则向上取整   如果是偶数则向下取整
        Mathf.Sign()  判断输入的正负,如果是正则返回0 或 1  如果是负 则返回 -1
        Mathf.Clamp(int CompareNum,int Max,int Min) 限制大小,如果输入大于最大数则返回最大数,小于最小数则返回最小数,否则返回自身
        Mathf.Clamp01()  限制 value 在 0,1之间,大于1返回1,小于 0 返回0  否则返回 value
        

Mathf 数学运算:曲线变换

        以下这些方法都是:给出一个 startPoint 起始点,和一个finalPoint 终点,然后从起始点移动到终点的方法,只不过是实现的效果不同。
        
        Lerp(): 基于浮点数 t 返回 a 到 b 之间的插值

        参数:float min ,float max , float t


        LerpAngle():基于浮点数 t 返回 a 到 b 之间的角度插值
        参数:float min,float max , float t


        MoveTowards():改变一个当前值向目标值靠近
        参数:float current,float current,float maxDelta


        MoveTowardsAngle():改变一个当前值向目标角度值靠近
        参数:同上


        SmoothStep():和 lerp 类似,在最小和最大值之间的插值,并在限制处渐入渐出
        参数:用法与 lerp 一样



        SmoothDamp():随着时间的推移逐渐改变一个值到期望值
        参数:float current,float target,float currentVelocity,float smoothTime,float maxSpeed = Mathf.Infinity,float deltaTime = Time.deltaTime
        currentVelocity  当调用方法的时候每一帧的速度,smoothTime 到达目标的时间。



        SmoothDampAngle():随着时间的推移逐渐改变一个给定的角度到期望的角度
        参数:同上




Mathf 数学运算:其他函数


        InverseLerp():算出现在在起始点到终点的百分比
        参数:float from,float to,float value    value 是当前点   返回值为 float
        可以用作推断当前动画的状态


        Repeat():类似于动画曲线中的 Loop ,重复
        Pingpang():类似于动画曲线中的 Pingpong ,往复性的重复


        GammaToLinearSpace():输入与输出都是一个 0 - 1 的区间(颜色区间),让数值从Gamma属性增长变成线性增长
        LinearToGammaSpace():输入与输出都是一个 0 - 1 的区间(颜色区间),让数值从线性属性增长变成 Gamma 属性增长


        Gamma 图的色彩显示效果会好一点,但是 Gamma 数值计算比较复杂,所以我们一般采用先将 Gamma 值转为线性值进行计算,然后再转为 Gamma 值进行显示


        PerlinNoise():噪声图,其实也是随机数,但是与随机数不同是返回的是一个有梯度的值,每次生成的随机数不会有太大的跳跃,而是沿着随机方向进行变化的一组数。
        参数:float x,float y

转载自:Lucifer_Lu
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-24 07:02 , Processed in 0.092508 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部