zoukankan      html  css  js  c++  java
  • Quaternion:通过API对Quaternion(四元数)类中的方法属性初步学习总结(二)

    1.RotateTowards方法

    RotateTowards(From.rotation,To.rotation,fspeed)

    个人理解:使From的rotation以floatspeed为速度,旋转到To的rotation

    speed而是指每次移动的最大长度

    2.Slerp球形插值

    Quaternion.Slerp(A.rotation,B.rotation,speed)

    个人理解:A-B的值的变化趋势不再是一条均匀变化的直线,而是以一种类似于日起日落的方式变化,它将Vector视为向量,而不像Lerp那样视为一个点,顾名思意球形插值

    这是分析RotateToward、Slerp与Lerp三者的同异处的帖子

    http://www.jianshu.com/p/6287f18260f5

    文中提出了这样一种观点:在运行效率上Slerp要比Lerp相对较差,但当旋转A离旋转B比较远的时候,则Slerp的效果相对于Lerp是非常好的。

    3.Dot点积

    个人理解:返回一个float类型的点积,具体用法不清楚,可能用的不多,Dot方法用的比较多的是Vector3.Dot(transform.forward,target.rotation);返回一个float(transform.z),若为正则在该物体的前方,若为负则在该物体的后方,类似的方法还有比如Vector3.Cross(transform.right,target.rotation);返回一个float(即tansform.x)。

    4.Inverse返回反向的旋转

    Inverse(rotation);

    个人理解:用一个较浅显易懂的说法,当target的rotation.y=45时,这时候返回一个315的值,返回一个反向的数值,即transform.rotation.y=315

    public Transform A;
        void Update()
        {        
            Quaternion aaa = Quaternion.Inverse(A.rotation);
            transform.rotation = Quaternion.Lerp(transform.rotation, aaa, 2 * Time.deltaTime);
        }
    Inverse

    5.FromToRotation从from到to旋转

    TromToRotation(Vector.up,tranorm.forward)

    个人理解:创建一个旋转,Y轴跟随目标方向,指向ToDirection,不是很理解

    6.SetLookRotation注视旋转

    SetLookRotation(View:vector3.up,Vector3=Vector3.up)

    创建一个旋转,沿着forward(z轴)并且头部沿着Up(Y轴)的约束注释。也就是建立了一个旋转,是z轴指向view,Y轴指向Up;

    以上是官方注释的中文版

    不是很明白

    Quaternion的方法,参数,大致了解了一边,觉得不是很理解,总觉得有些方面理解的太片面。

    下篇博客将着重总结总结生成时间间隔的方法

  • 相关阅读:
    20200713 T3 图论
    20200713 T1序列问题
    【题解】P1441 砝码称重
    【题解】P2858 [USACO06FEB]Treats for the Cows G/S
    【比赛】AISing Programming Contest 2019
    20200709 T3 城堡
    20200709 T2 括号
    20200709 T1 笔记
    20200628 T3 网络检查
    个人技术总结
  • 原文地址:https://www.cnblogs.com/HeYIcengshuo/p/6411499.html
Copyright © 2011-2022 走看看