我的问题是使用Vector2.Normalize函数时(专门在XNA中)
可能是我对向量数学的理解不佳,但据我所知,归一化为您提供方向或渐变。
如果您在单个方向(例如,左右上下)上应用速度,它只会针对特定轴和对我有意义的方向返回正或负1。
但是,如果我要对对角移动的vector2进行归一化,则每隔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。因此,图像中的三个向量的长度都等于1.0。对角矢量的x和y坐标明显大于0.5f
关于c# - Vector2.Normalize函数,对对角线输出感到困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25583169/