XNA(C#)中Vector2.Transform()和Vector2.TransformNormal()有什么不同

Cuo*_*gKe 4 c# xna game-engine game-physics

我正在 XNA (C#) 中开发一个游戏,我想知道如何使用 2 个版本的转换。在我看来,这个函数的工作原理是:

(假设向量源自Matrix.Identity

  • Vector2 resultVec = Vector2.Transform(sourceVector, destinationMatrix);用于位置向量变换。

  • Vector2 resultVec = Vector2.TransformNormal(sourceVector, destinationMatrix);用于变换速度矢量

真的吗?。谁知道详细解释一下,请帮忙!

小智 5

简单的答案是——

Vector2.Transform()将整体应用于Matrix向量,同时

Vector2.TransformNormal()仅将 的缩放和旋转部分应用于Matrix矢量。