Unity3d 在单位中使用四元数计算旋转时,它使用q*transform.rotation,为什么不使用q*transform.rotation*q^(-1)?

Unity3d 在单位中使用四元数计算旋转时,它使用q*transform.rotation,为什么不使用q*transform.rotation*q^(-1)?,unity3d,quaternions,Unity3d,Quaternions,标题中的q是表示旋转的四元数。但是我在维基百科中找到了一些关于四元数在旋转中使用的解释,它说:p'=q*p*q^(-1)。为什么在统一中我们不需要右乘q^(-1)?四元数是什么意思 Wikipedia链接为:,因为四元数类的product(*)运算符重载。实现者选择简化(并优化)双边产品,并提供单边产品API 这是一个C++说明性伪代码: Vector3d Quaternion::operator * (Quaternion q, Vector3d v) { return ... //

标题中的
q
是表示旋转的
四元数。但是我在维基百科中找到了一些关于四元数在旋转中使用的解释,它说:
p'=q*p*q^(-1)
。为什么在统一中我们不需要右乘
q^(-1)
?四元数是什么意思

Wikipedia链接为:

,因为四元数类的product(*)运算符重载。实现者选择简化(并优化)双边产品,并提供单边产品API

这是一个C++说明性伪代码:

Vector3d Quaternion::operator * (Quaternion q, Vector3d v) 
{
    return ... // compute here q * v * q^-1
}

欢迎来到四元数。祝你好运。你最好在数学SE上寻求解释和/或只是接受你的代码是有效的。不过,如果你问起数学问题,不要指望他们会真正理解你:如果你不理解维基百科的文章,我怀疑他们能帮你(不,我也不理解)。