2D和3D空间中计算两点之间的距离

本身在作游戏的忘记了Unity帮咱们提供计算两点之间的距离,在百度搜索了下。 ide

原来有一个公式本身就写了一个方法O(∩_∩)O~,到僵尸到达某一个点以后就向另外一个奔跑过去idea

123

 

 

/// <summary>
    /// 3维中如何计算两点之间的距离
    /// </summary>
    /// <param name="p1"></param>
    /// <param name="p2"></param>
    /// <returns></returns>
    private float TwoPointDistance3D(Vector3 p1, Vector3 p2) 
    {

        float i = Mathf.Sqrt((p1.x-p2.x) * (p1.x-p2.x)
                            + (p1.y - p2.y) * (p1.y - p2.y)
                            + (p1.z - p2.z) * (p1.z - p2.z));

        return i;
    }

    /// <summary>
    /// 2维中如何计算两点之间的距离
    /// </summary>
    /// <param name="p1"></param>
    /// <param name="p2"></param>
    /// <returns></returns>
    private float TwoPointDistance2D(Vector2 p1, Vector2 p2)
    {

        float i = Mathf.Sqrt((p1.x - p2.x) * (p1.x - p2.x)
                            + (p1.y - p2.y) * (p1.y - p2.y));

        return i;
    }

 

 

数学公式:spa

欧氏距离定义: 欧氏距离( Euclidean distance)是一个一般采用的距离定义,它是在m维空间中两个点之间的真实距离。
在二维和三维空间中的欧式距离的就是两点之间的距离,二维的公式是
d = sqrt((x1-x2)^+(y1-y2)^)
三维的公式是
d=sqrt(x1-x2)^+(y1-y2)^+(z1-z2)^)
推广到n维空间,欧式距离的公式是
d=sqrt( ∑(xi1-xi2)^ ) 这里i=1,2..n
xi1表示第一个点的第i维坐标,xi2表示第二个点的第i维坐标
n维欧氏空间是一个点集,它的每一个点能够表示为(x(1),x(2),...x(n)),其中x(i)(i=1,2...n)是实数,称为x的第i个坐标,两个点x和y=(y(1),y(2)...y(n))之间的距离d(x,y)定义为上面的公式.
欧氏距离看做信号的类似程度。 距离越近就越类似,就越容易相互干扰,误码率就越高 code