栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity四元数,欧拉角

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity四元数,欧拉角

欧拉角

  • 优点:三个角度组成,直观,容易理解。

  • 优点:可以进行从一个方向到另一个方向旋转大于180度的角度。

  • 优点:由三个数字实现旋转效率相比要高。

  • 弱点:死锁问题。

四元数

内部由四个数字(在Unity中称为x,y,z和w)组成,然而这些数字不表示角度或轴,并且通常不需要直接访问它们。除非你特别有兴趣深入了解四元数学,你只需要知道四元数表示三维空间中的旋转,你通常不需要知道或修改x,y和z属性。

  • 优点:四元旋转不存在万向节锁问题。

  • 优点:存储空间小,计算效率高。

  • 弱点:单个四元数不能表示在任何方向上超过180度的旋转。

  • 弱点:四元数的数字表示不直观。

矩阵旋转

  • 优点:与四元数一样,不存在万向节锁问题

  • 优点:可以表示围绕任意轴的旋转,四元数的旋转轴均为通过物体中心点的轴,矩阵则不受限

  • 缺点:矩阵旋转使用4x4矩阵,记录16个数值,而四元数只需要4个数值。计算复杂,效率低。

1.欧拉角

用欧拉角来描述刚体在三维欧几里得空间的取向。对于任何参考系,一个刚体的取向,是依照顺序,从这参考系,做三个欧拉角的旋转而设定的。所以,刚体的取向可以用三个基本旋转矩阵来决定。换句话说,任何关于刚体旋转的旋转矩阵是由三个基本旋转矩阵复合而成的。

 异常现象:绕着X轴旋转90度后,再绕Y轴旋转此时Y轴没有用了,旋转的角度都归于了Z轴

 这种现象叫做万向节死锁

四元数

四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。

i、j、k仍然理解为旋转,其中:

  • i旋转代表X轴与Y轴相交平面中X轴正向向Y轴正向的旋转

  • j旋转代表Z轴与X轴相交平面中Z轴正向向X轴正向的旋转

  • k旋转代表Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转

  • -i、-j、-k分别代表i、j、k旋转的反向旋转

一个普通四元数可以写成如下形式:q¯¯=a+bi+cj+dk

案例:让物体绕y轴旋转60度

 

此时Rotation Y的值为60

 

四元数和四元数相乘控制旋转

 

四元数与向量相乘

案例实现人物视角原理 视角 60度

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号