四元数构造:
绕X轴旋转
w = cosθ/2, x = sinθ/2, y = 0, z = 0
绕Y轴旋转
w = cosθ/2, x = 0, y = sinθ/2, z = 0
绕Z轴旋转
w = cosθ/2, x = 0, y = 0, z = sinθ/2
绕任意轴旋转
假设绕绕V(x, y, z)轴
则
w = cosθ/2, x = Vx*sinθ/2, y = Vy*sinθ/2, z = Vz*sinθ/2
欧拉角构造四元数
物体->惯性
公式:
w [ cos(h/2)*cos(p/2)*cos(b/2) + sin(h/2)*sin(p/2)sin(b/2) ]
x [ -cos(h/2)*sin(p/2)*sin(b/2) - sin(h/2)*cos(p/2)*sin(b/2) ]
y [ cos(h/2)*sin(p/2)*sin(b/2) - sin(h/2)*cos(p/2)*cos(b/2) ]
z [ sin(h/2)*sin(p/2)*cos(b/2) - cos(h/2)*cos(p/2)*sin(b/2) ]
惯性->物体
公式:
它的共轭
w [ cos(h/2)*cos(p/2)*cos(b/2) + sin(h/2)*sin(p/2)sin(b/2) ]
x [ cos(h/2)*sin(p/2)*sin(b/2) + sin(h/2)*cos(p/2)*sin(b/2) ]
y [ sin(h/2)*cos(p/2)*cos(b/2) - cos(h/2)*sin(p/2)*sin(b/2) ]
z [ cos(h/2)*cos(p/2)*sin(b/2) - sin(h/2)*sin(p/2)*cos(b/2) ]
//四元数叉乘
//公式:
//[ w1, (x1, y1, z,) ], [ w2, (x2, y2, z2) ]
//[ w1w2 - x1x2 - y1y2 - z1z2 ]
//[ w1x2 + x1w2 + z1y2 - y1z2 ]
//[ w1y2 + y1w2 + x1z2 - z1x2 ]
//[ w1z2 + z1w2 + y1x2 - x1y2 ]
//简化公式:
//[ w1 v1 ], [ w2, v2 ]
//[ w1w2 - v1·v2, w1v2 + w2v1 + v2 x v1 ]
//以上是四元数标准叉乘定义
//该书本定义
//[ w1w2 - x1x2 - y1y2 - z1z2 ]
//[ w1x2 + x1w2 + y1z2 - z1y2 ]
//[ w1y2 + y1w2 + z1x2 - x1z2 ]
//[ w1z2 + z1w2 + x1y2 - y1x2 ]
//简化公式:
//[ w1 v1 ], [ w2, v2 ]
//[ w1w2 - v1·v2, w1v2 + w2v1 + v2·v1 ]
//意义:
//向量旋转
//四元数正规化
//公式
//|q| = |[w (x, y, z)]| = √ ̄w*w + x*x + y*y + z*z
//Qnormal = [ w/|q| (x/|q|, y/|q|, z/|q|) ]
//意义:
//单位四元数
//四元数点乘
//公式:
//[w1 x1 y1 z1], [w2 x2 y2 z2]
//w1*w2+x1*x2+y1*y2+z1*z2
//意义:
//角位移相似度
//四元数共轭
//公式:
//[ w , ( x y z ) ] -> [ w, ( -x -y -z ) ]
//意义:
//绕旋转轴反向旋转
//四元数求幂
//公式:
//q' = exp(t log q)
//意义:
//绕倍数旋转