UnityEditor.MathUtils.GetQuatExp C# (CSharp) Method

GetQuatExp() public static method

public static GetQuatExp ( Quaternion q ) : Quaternion
q UnityEngine.Quaternion
return UnityEngine.Quaternion
        public static Quaternion GetQuatExp(Quaternion q)
        {
            Quaternion quaternion = q;
            float f = Mathf.Sqrt(((q.x * q.x) + (q.y * q.y)) + (q.z * q.z));
            float num2 = Mathf.Sin(f);
            quaternion.w = Mathf.Cos(f);
            if (Mathf.Abs(num2) > 0.0001)
            {
                float num3 = num2 / f;
                quaternion.x = num3 * q.x;
                quaternion.y = num3 * q.y;
                quaternion.z = num3 * q.z;
            }
            return quaternion;
        }

Usage Example

示例#1
0
        public static Quaternion GetSquadIntermediate(Quaternion q0, Quaternion q1, Quaternion q2)
        {
            Quaternion quatConjugate = MathUtils.GetQuatConjugate(q1);
            Quaternion quatLog       = MathUtils.GetQuatLog(quatConjugate * q0);
            Quaternion quatLog2      = MathUtils.GetQuatLog(quatConjugate * q2);
            Quaternion q3            = new Quaternion(-0.25f * (quatLog.x + quatLog2.x), -0.25f * (quatLog.y + quatLog2.y), -0.25f * (quatLog.z + quatLog2.z), -0.25f * (quatLog.w + quatLog2.w));

            return(q1 * MathUtils.GetQuatExp(q3));
        }
All Usage Examples Of UnityEditor.MathUtils::GetQuatExp