数学 四元数

开始

四元数

https://blog.csdn.net/silangquan/article/details/39008903
实数是一维结合代数,复数是二维结合代数,四元数是四维结合代数,都是可除代数;

  • 以i,j,k表示四元数的基元,四元数的一般形式为A = w+xi+yj+zk;(w,x,y,z为实数)基元i,j,k的运算规则为:
    i2 = j2 = k2 = -1
    i * j = k = -j * i
    j * k = i = -k * j
    k * i = j = -i * k
      i,j,k可代表沿x,y,z轴的单位矢量,四元数是标量w与矢量V=xi+yj+zk之和。
  • 表示方法
    q=d+ai+bj+ck,其中a,b,c,d是实数,i,j,k是虚数;
    q=[w,v], 其中v=(x,y,z)是矢量,w是标量;
    q=(cos@/2), (x,y,z)sin@/2)
    q=[d,a,b,c]T
  • 加法
    q1 + q2 = (w1+w2) + (x1+x2) i + (y1+y2) j + (z1+z2) k
  • 乘法称为直乘:
    A * B=(w1+x1i+y1j+z1k)(w2+x2i+y2j+z2k)
     =w1w2-x1x2-y1y2-z1z2+(w1x2+x1w2+y1z2-z1y2)i………
  • 求范数
    ||q|| = ( x2 + y2 + z2 + w2 )
  • 求模
    N(q) = |q| = ( x2 + y2 + z2 + w2 )0.5
  • 单位化
    Normalize( q ) = q/ | q |
  • 求共轭
    q*=(-x, -y, -z, w)
  • 求逆
    q-1=q*/||q||

应用

  • 用四元数旋转矢量
    给定一个矢量v,再给定一个旋转的单位四元素q,让v旋转q。
    首先将v改写成四元数的形式v=(x,y,z,0),接下来要旋转v需用q前乘以矢量v,再后乘以q-1。 v’ = qvq-1
    对于旋转多个四元数,注意顺序。v’ = q3q2q1vq3-1q2-1q1-1
  • 设四元数是 xi+yj+zk+w,那么旋转角度和旋转轴(a,b,c)是:
    angle = 2 * acos(w)
    a = x / sqrt(1-ww)
    b = y / sqrt(1-w
    w)
    c = z / sqrt(1-w*w)
  • 四元数的线性插值和球面线性插值
  • 四元数转欧拉角、旋转矩阵

结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值