一、四元数与欧拉角的转换

先说结论:

Unity 四元数与欧拉角的相互转换及推导

 

具体推到过程参考: https://blog.csdn.net/qq1545372477/article/details/78440806

将欧拉角转换为四元数:

public Quaternion EularToQuaternion(float xx,float yy,float zz) {

        float X = xx / 180 * Mathf.PI;
        float Y = yy / 180 * Mathf.PI;
        float Z = zz / 180 * Mathf.PI;
        float x = Mathf.Cos(Y / 2) * Mathf.Sin(X / 2) * Mathf.Cos(Z / 2) + Mathf.Sin(Y / 2) * Mathf.Cos(X / 2) * Mathf.Sin(Z / 2);
        float y = Mathf.Sin(Y / 2) * Mathf.Cos(X / 2) * Mathf.Cos(Z / 2) - Mathf.Cos(Y / 2) * Mathf.Sin(X / 2) * Mathf.Sin(Z / 2);
        float z = Mathf.Cos(Y / 2) * Mathf.Cos(X / 2) * Mathf.Sin(Z / 2) - Mathf.Sin(Y / 2) * Mathf.Sin(X / 2) * Mathf.Cos(Z / 2);
        float w = Mathf.Cos(Y / 2) * Mathf.Cos(X / 2) * Mathf.Cos(Z / 2) + Mathf.Sin(Y / 2) * Mathf.Sin(X / 2) * Mathf.Sin(Z / 2);
        Quaternion quataion = new Quaternion(x, y, z, w);
        return quataion;
    }

 

二、关于rotation、localRotation、eulerAngles、localEulerAngles之间的关系

 

transform.rotation:物体旋转角度的四元数(受父物体影响)

transform.localRotation:物体旋转角度的四元数(不受父物体影响)

transform.eulerAngles:物体旋转角度,(Inspector面板中Rotation显示的数,受父物体影响

transform.localEulerAngles:物体旋转角度,(Inspector面板中Rotation显示的数,不受父物体影响

相关文章:

  • 2021-05-20
  • 2021-12-11
  • 2021-09-15
  • 2022-12-23
  • 2021-10-27
  • 2021-04-02
  • 2022-12-23
猜你喜欢
  • 2021-10-02
  • 2021-11-02
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案