我的问题是何时使用 Vector2.Normalize 函数(特别是在 XNA 中)
这可能是我对向量数学的理解不好,但据我了解,归一化为您提供了一个方向或梯度。
如果您在单个方向(例如上下左右)应用速度,它只会为特定轴和对我有意义的方向返回正值或负值 1。
但是,如果我要求对沿对角线移动的向量 2 进行归一化,则每向右移动 1 个单位,向下移动 1 个单位。它返回这个。
{X:0.7071068 Y:0.7071068}
这让我感到惊讶,因为我本以为它会更像 [X:0.5 Y:0.5]
我这样做的理由是什么?如果一个方向是 1 的绝对值,而另一个方向是 1 的绝对值,那么以 45 度角移动难道不会产生类似 0.5 的中点吗?
难道添加的 0.5 和 0.5 不会产生我认为归一化向量应该遵循的 1 的大小吗?
我不知道我是否可以使用像 DYDX 这样的东西为自己找到答案,因为它只是一个方向,而不是一条具有已知终点的线。
最佳答案
这是一个视觉辅助工具。归一化始终使向量的长度为 1.0。所以图像中的 3 个向量的长度都是相等的 1.0。对角向量的x和y坐标明显大于0.5f
关于c# - Vector2.Normalize函数,对对角线输出感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25583169/