最有效的方法来计算2个整数坐标点之间的距离



我有两个存储为六个 int值的三维坐标。计算所述位置之间的float距离的更有效方法是什么:

  1. Vector3.distance( new Vector3( (float) a, (float) b, (float) c), new Vector3 ( (float) x, (float) y, (float) z)) ;
  2. 在将整数作为参数的函数中实现正确的数学,并将所有铸件浮动,所有 ^2,而平方c#中的平方根?

#1:在unity中有一个函数:vector3.distance,如您已经添加。这是最有效的方法(唯一更好的选择是获得浮点值,而不是首先获得ints)。
#2: //unity private Vector3 Int2Vector3 (int x, int y, int z) { return new Vector3 ((float)Mathf.Sqrt(x), (float)Math.Sqrt(y), (float)Math.Sqrt(z)); } //plain c# private float Int2FloatSqrt (int a) { return (float)Math.Sqrt(a); }


edit :这是一个unity的.distance函数,可以更好地理解:
public static float Distance(Vector3 a, Vector3 b) { Vector3 vector = new Vector3(a.x - b.x, a.y - b.y, a.z - b.z); return Mathf.Sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z); }

最新更新