有时,两个向量EndPosition和StartPosition在我的应用程序中具有完全相同的值。在这种情况下,Vector2.Normalize(EndPosition-StartPosition)为NaN,此后我的应用程序冻结,因为稍后我在代码中使用了可变方向。
如果两个向量EndPosition和StartPosition具有完全相同的值,该怎么办?如何确定方向是否为NaN?如果变量方向不是NaN,我只想执行下一个代码块(direction = Vector2.Normalize(EndPosition-StartPosition);之后)。
例如:
float distance;
Vector2 direction;
Vector2 StartPosition = new Vector2(400, 250);
Vector2 EndPosition = new Vector2(400, 250);
distance = Vector2.Distance(StartPosition, EndPosition);
direction = Vector2.Normalize(EndPosition - StartPosition);
// code where I use direction to calculate
有时,两个向量EndPosition和StartPosition在我的应用程序中具有完全相同的值。在这种情况下,Vector2.Normalize(EndPosition-StartPosition)为NaN并且我的应用程序冻结了...
仅提供对此问题的答案(对InBetween和Toby60的信用),并提供一些提示: