Vector2.Normalize(EndPosition-StartPosition)is NaN我该怎么办?

问题描述 投票:0回答:1

有时,两个向量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并且我的应用程序冻结了...

c# xna
1个回答
0
投票

仅提供对此问题的答案(对InBetween和Toby60的信用),并提供一些提示:

© www.soinside.com 2019 - 2024. All rights reserved.