【发布时间】:2011-11-20 13:52:18
【问题描述】:
我对四元数有一些理解问题。
为了让我的世界对象以正确的方式旋转,我需要在刷新对象世界矩阵的同时反转它们的四元数旋转。
我使用以下代码创建对象旋转:
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);
为什么我必须反转对象旋转?
【问题讨论】:
标签: math rotation quaternions