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);
爲什麼我必須反轉對象的旋轉?