四元数的简单应用

23 篇文章 3 订阅
13 篇文章 1 订阅

关于四元数,网上的教程很多,但是大多都是装B版本,像我一样早就把线性代数换给老师的同学,会发现看了之后还是云里雾里,既不知道怎么用,也不知道用了有什么意义,现在我来已最直白,最简单的方式告诉大家用法。

1.四元数表示的旋转公式如下

代表旋转行为的四元数有四个分量 :( X,Y,Z , W ),W为实部,XYZ为虚部,什么是实部虚部?不懂忽略就行了,等有空去看《3D游戏与计算机图形学中的数学方法》youku 视频,里面有详细说明。

我们只需要知道,下面红色部分代表的意义就可以了,

W =1 *cos(旋转角度/2)
X = 旋转轴向量x分量 * sin(旋转角度/2) 
Y = 旋转轴向量y分量 * sin(旋转角度/2)
Z = 旋转轴向量z分量 * sin(旋转角度/2)

通过上面的公式的到WXYZ四个分量,就构成了我们旋转行为对应的四元数,表示在坐标空间下,沿旋转轴向量(x,y,z),进行指定旋转角度的旋转,请看下图。


我们先摆放好测试圆柱体的初始位置,图中红绿蓝三个长条分别穿过世界坐标系的(0,0)且分别平行于世界坐标的XYZ轴



2.四元素在Unity world coordinate 中是已左手坐标系进行旋转,左手大拇指指向旋转轴方向,其余四指指向旋转方向,如下面旋转


表示沿X轴,旋转90度


3.四元素相乘,表示从右至左两次旋转先后执行,如下,先沿空间X轴旋转90度,再沿空间Y轴旋转90度


如果我们把顺序倒过来,就会出现如下情况,先沿空间Y轴旋转90度,再沿空间X轴旋转90度



所以当你要叠加旋转时,请一定主意顺序,叠加顺序是依次从右至左!


  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值