解决Python中的四元数相乘
发布时间
阅读量:
阅读量
一、四元数乘法
定义:
q = a + \vec u = a + bi + cj + dk
p = t+\vec v = t + xi + yj + zk
运算法则
pq = at - \vec u \cdot \vec v + a\vec v + t\vec u + \vec u \times \vec v
pq= (at -bx -cy -dz) + (ax+bt+cz-dy)i + (ay-bz+ct+dx)j+ (az+dt-cx+by)k
代码
# Take the product of two quaternions
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
全部评论 (0)
还没有任何评论哟~
