一、四元数乘法
定义:
q=a+u
=a+bi+cj+dk
p=t+v
=t+xi+yj+zk
运算法则
pq=at−u
⋅v
+av
+tu
u
×v
pq=(at−bx−cy−dz)+(ax+bt+cz−dy)i+(ay−bz+ct+dx)j+(az+dt−cx+by)k
代码
def quatProduct(q1, q2):
r1 = q1[0]
r2 = q2[0]
v1 = np.array([q1[1], q1[2], q1[3]])
v2 = np.array([q2[1], q2[2], q2[3]])
r = r1 * r2 - np.dot(v1, v2)
v = r1 * v2 + r2 * v1 + np.cross(v1, v2)
q = np.array([r, v[0], v[1], v[2]])
return q