四元数系列

Series of Quaternions

本文关键字:系列 四元数      更新时间:2023-10-16

请原谅我对四元数的无知(在打字时试图学习它们)。在3D图形的上下文中,假设我有一个点p1,它被一系列从q0到qn的四元数变换为点p2。知道了从p1到p2的所有四元数,有可能反过来回到p1吗?

我尝试了这样愚蠢的东西,但它并没有给我想要的东西:

int main(void)
{
    vmath::vec4 p1(4.0f, 3.0f, 2.0f, 1.0f);
    print_vec4(p1);
    vmath::quaternion q1(1.0f, 0.0f, 0.0f, M_PI);
    vmath::vec4 p2 = p1 * q1.asMatrix();
    print_vec4(p2);
    vmath::quaternion q2(q1);
    q2 = q2.conjugate();
    p2 = p2 * q2.asMatrix();
    print_vec4(p2);
    return 0;
}

T=q1*q2*。。。qn这个的逆变换是T^-1=qn^-1..*q2^-1*q1^1;其中"^1"表示"逆",对于单位长度的四元数,我们可以反转"向量"(x,y,z)分量的符号进行逆运算。

至少

p2=T*p1;和p1=T^-1*p2