当前位置:   article > 正文

Unity 根据所给方向计算Pitch、Yaw、Roll角的大小_pitch yaw roll坐标系如何计算偏转角

pitch yaw roll坐标系如何计算偏转角

Pitch、Yaw、Roll角的概念

Pitch角,也叫俯仰角,用于描述物体绕x轴旋转的旋转角度。对应相机的上下旋转。

float pitch = Mathf.Atan2(direction.y, direction.z) * Mathf.Rad2Deg;

Yaw角,也叫航向角,用于描述物体绕y轴旋转的旋转角度。对应相机的水平旋转。

float yaw = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;

Roll角,也叫横滚角,用于描述物体绕z轴旋转的旋转角度。相机应保持水平,不应该有横滚角。

代码

给定一个方向,让物体旋转到这个角度(其实用Quaternion.LookRotation就可以..

  1. float GetYawAngleFromDirection(Vector3 direction)
  2. {
  3. float yaw = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg;//所给方向与世界坐标系的z轴夹角(yaw angle,偏航角)
  4. return yaw;
  5. }
  6. float GetPitchAngleFromDirection(Vector3 direction)
  7. {
  8. float pitch = Mathf.Atan2(direction.y, direction.z) * Mathf.Rad2Deg;
  9. return pitch;
  10. }
  11. float GetRollAngleFromDirection(Vector3 direction)
  12. {
  13. float roll = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
  14. return roll;
  15. }
  16. public void LookRotation(Vector3 direction)
  17. {
  18. transform.rotation = Quaternion.Euler(GetPitchAngleFromDirection(direction), GetYawAngleFromDirection(direction), GetRollAngleFromDirection(direction));
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/416006
推荐阅读
相关标签
  

闽ICP备14008679号