c# - XNA(C#) 中的 Vector2.Transform() 和 Vector2.TransformNormal() 有什么区别

标签 c# xna game-engine game-physics

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

(假设向量源自Matrix.Identity)

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

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

这是真的吗?谁知道详细的解释,请帮忙!

最佳答案

简单的答案是——

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

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

关于c# - XNA(C#) 中的 Vector2.Transform() 和 Vector2.TransformNormal() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13188156/

相关文章:

sql - XNA Windows 游戏简单数据库 Access - .mdb 不起作用 [非常基本]

c++ - C++ 中的实体系统

c# - getJSON 函数未执行

C#/XNA - 二维碰撞引擎故障?

c# - 如何使用 LINQ to XML 创建对象列表?

c# - 如何将 .tmx(Tile Map Editor)文件导入我的 XNA 项目

c++ - 处理游戏中的实体

audio - 如何将使用 DirectMusic 在内部播放 MIDI 的旧游戏转换为将原始 MIDI 输出到默认设备?

c# - Facebook C# SDK - 重定向到另一个页面时出现问题

c# - Entity Framework 中的 HttpContext 数据缓存