zoukankan      html  css  js  c++  java
  • Lerp线性插值

    在Unity3D中经常用线性插值函数Lerp()来在两者之间插值,两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间,其函数原型如下:
    1.Material.Lerp 插值
    function Lerp(start : Material, end : Material, t : float) : void
    在两个材质之间插值
     
    2.Vector2.Lerp 插值
    static functionLerp (from : Vector2, to : Vector2, t : float) : Vector2
    两个向量之间的线性插值。按照数字t在form到to之间插值。
    t是夹在0到1之间。当t=0时,返回from。当t=1时,返回to。当t=0.5时放回from和to之间的平均数。

    3.Vector3.Lerp 插值
    static functionLerp (from : Vector3, to :Vector3, t : float) :Vector3
    两个向量之间的线性插值。按照数字t在from到to之间插值。

    4.Vector4.Lerp 插值
    static functionLerp (from : Vector4, to : Vector4, t : float) : Vector4
    两个向量之间的线形插值。按照数字t在from到to之间插值。t是夹在[0...1]之间的值。,当t = 0时,返回from。当t = 1时,返回to。当t = 0.5 返回from和to的平均数。
     
    5.Mathf.Lerp 插值
    static functionLerp (from : float, to : float, t : float) : float
    基于浮点数t返回a到b之间的插值,t限制在0~1之间。当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值。
     
    6.Color.Lerp 插值
    static functionLerp (a : Color, b : Color, t : float) : Color
    通过t在颜色a和b之间插值。
    "t"是夹在0到1之间的值。当t是0时返回颜色a。当t是1时返回颜色b。
     
    插值,从字面意思上看,就是在其间插入一个数值,其原理为a=from + (to - from) * t

    例如Mathf.Lerp(100.0f, 200.0f,0.2f) = 100 + (200 - 100)*0.2 = 100 + 100 * 0.2 = 120

    应用例子:

    1.几秒内移动到目标点,其中smooth为移动时间

             public Transform target;  
             public float smooth = 5.0F;  
             void Update()   
             {  
                       transform.position =Vector3.Lerp(transform.position, target.position, Time.deltaTime * smooth);  
             }  
    

      2.我们以前所玩的游戏中,主人公身上依附着一只宠物如鹰,主人公移动时,鹰会跟随着飞动,主人公移动得快它就飞行跟动得快,始终不会离开主人公,使用Lerp插值函数就可实现。

    一直想把之前工作、学习时记录的文档整理到博客上,一方面温故而知新,一方面和大家一起学习 -程序小白
  • 相关阅读:
    转:[windows]DOS批处理添加任务计划
    转:winform_webApiSelfHost及 OWIN WebAPI Service
    Ubuntu上将终端安装到右键上
    Ubuntu上安装VMware tools
    OpenStack中的rabbitmq的配置方法
    centos上的grub文件修改
    centos7上安装0penStack
    怎样使用yum安装OpenStack
    epel扩展库的安装
    centos7上修改主机名
  • 原文地址:https://www.cnblogs.com/wang-jin-fu/p/8195875.html
Copyright © 2011-2022 走看看