给定第二个3D点(P1),我需要使用什么公式:
我猜想,行进的距离S需要分成X,Y和Z的组成部分。是否有使用四元数的简单方法?
方向向量的成分是:
x = 2 * (q1*q3 + q0*q2)
y = 2 * (q2*q3 - q0*q1)
z = 1 - 2 * (q1*q1 + q2*q2)
[此公式是根据四元数到矩阵公式乘以(0,0,1)向量得出的。
归一化D=(x,y,z)
(如果不是单位,并计算P_New.x= P0.x + S * D.x
和其他分量。
要获得方向的向上和向左矢量,请使用下面引用的矩阵的另一列:
Link:四元数乘法和正交矩阵乘法均可用于表示旋转。如果四元数由qw + i qx + j qy + k qz
表示,则表示相同旋转的等效矩阵为:
1 - 2*qy2 - 2*qz2 2*qx*qy - 2*qz*qw 2*qx*qz + 2*qy*qw
2*qx*qy + 2*qz*qw 1 - 2*qx2 - 2*qz2 2*qy*qz - 2*qx*qw
2*qx*qz - 2*qy*qw 2*qy*qz + 2*qx*qw 1 - 2*qx2 - 2*qy2