3
我有一些关于四元数的理解问题。四元数旋转矩阵意外的有相反的意义
为了让我的世界对象以正确的方式旋转,我需要在刷新对象世界矩阵时反转它们的四元数旋转。
我创建的对象的旋转与此代码:
Rotation = Quaternion.RotationMatrix(
Matrix.LookAtRH(Position,
Position + new Vector3(_moveDirection.X, 0, _moveDirection.Y),
Vector3.Up)
);
,并刷新对象世界矩阵是这样的:
Object.World = Matrix.RotationQuaternion(Rotation)
* Matrix.Translation(Position);
这不是工作;它使对象以相反的方式旋转,相比之下它应该!
的是,让我的对象的方式旋转正确:
Object.World = Matrix.RotationQuaternion(Quaternion.invert(Rotation))
* Matrix.Translation(Position);
为什么我必须反转对象的旋转?