四元数简单扫盲

理解四元数,首先要认识欧拉角,欧拉角是在复平面的单位圆中定义的.

e^iθ=cos(θ)+isin(θ)  其中i为复数

θ为实数轴正向开始,逆时针旋转的角度

而对于单位四元数

 i^2 = j^2 = k^2 = -1  其中i,j,k都为复数

对于一个任意单位四元数,注意以下讨论的四元数都是单位四元数,因为即使四元数非单位长度,长度也会被左右乘给无视掉.

q = w + xi + yj + zk = cos(θ/2) + sin(θ/2)(xi + yj + zk)  其中i,j,k都为复数

形式和欧拉角相似

而应用一个四元数旋转计算为: F(p) = qpq的逆  其中p是向量,q是四元数

对于任意一个单位四元数

旋转轴即为 normalize(Vector3(x,y,z)) 过物体空间原点的向量

旋转方向为逆时针

旋转角度可由 w = cos(θ/2) 计算得知

单位四元数表示的旋转都是以物体空间计算,绕过原点的向量方向为旋转轴,逆时针旋转θ角

四元数的矩阵形式:

单位四元数 q = w + xi + yj + zk 的3X3旋转矩阵

[ 1 - 2y^2 -2z^2     2xy - 2wz     2xz + 2wy ]

|    2xy + 2wz    1-2x^2-2z^2     2yz - 2wx  |

[    2xz - 2wy     2yz + 2wx     1-2x^2-2y^2 ]

单位四元数 q = w + xi + yj + zk 的4X4旋转矩阵

[​ w  -x  -y  -z ]

| x   w   z   -y |

| y   -z   w   x |

[ z    y  -x   w ]

在应用四元数时注意公式:F(p) = qpq的逆  其中p是向量,q是四元数

而四元数的逆,可以根据公式:四元数的逆 = 四元数的共轭 / 四元数模的平方

单位四元数 q = w + xi + yj + zk 的共轭 = q = w - xi - yj - zk

四元数模的平方 = w^2 + x^2 + y^2 + z^2

四元数乘法

四元数q1乘四元数q2 = w1w2 - v1内积v2 + w1v2 + w2v1 + v1叉积v2

其中v1和v2分别为四元数q1和q2的虚部向量

四元数可视化网站:

Visualizing quaternions, an explorable video series

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值