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

相關文章
相關標籤/搜索