Unity的Vector3.Lerp线性插值

先看下面这个图:
这里写图片描述
画的比较潦草,大家将就看。。。

向量from 和 向量to在xy平面上,其实这并不影响讲解插值原理。

图中可以看出当t=0.5f时,插值向量就是中间那个向量,其x轴分量的计算图中已经给出了,y轴也同理,z轴也一样。。

下面看下函数:
public static Vector3 Lerp(Vector3 a, Vector3 b, float t);

其中a就是图中的from向量,b就是to向量。
t是夹在 [0…1]之间,当t = 0时,返回from,当t = 1时,返回to。当t = 0.5 返回from和to的平均数

所以具体实现代码如下:

   /// <summary>
    /// 两个向量之间的线性插值
    /// </summary>
    /// <param name="from">向量from</param>
    /// <param name="to">向量to</param>
    /// <param name="t"></param>
    /// <returns></returns>
    public static Vector3D Lerp(Vector3D from, Vector3D to, float t)
    {
        if (t <= 0)
        {
            return from;
        }
        else if (t >= 1)
        {
            return to;
        }
        return t * to + (1 - t) * from;
    }

线性插值比Slerp球形插值简单的多。

以上知识分享,如有错误,欢迎指出,共同学习,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值