Unity立體幾何 點到直線距離計算

2021-09-20 12:52:46 字數 3369 閱讀 2805

unity是一款3d引擎,設計一款3d遊戲時,經常會涉及到3d的運算,比如兩點之間的距離,向量的一些操作等。

unity已經封裝好了一些常用函式在vector3和plane類中,如兩點之間的距離,向量之間的夾角,向量的投影計算等。

這裡說一下的是點到直線的距離,根據投影及勾股定理計算。

///

/// 點到直線距離

//////

點座標///

直線上乙個點的座標

///直線上另乙個點的座標

///public

static

float

dispoint2line(vector3 point,vector3 linepoint1,vector3 linepoint2)

下面提供了點到面的距離及面夾角的計算,不過是對一些函式呼叫的二次封裝,僅供參考

using unityengine;///

///

///public

class geometrytools    ///

/// 點到平面的距離 自行推演函式

//////

//////

//////

public

static

float

dispoint2su***ce(vector3 point,vector3 su***cepoint1,vector3 su***cepoint2,vector3 su***cepoint3)        public

static

float

dispoint2su***ce(vector3 point, float factora,float factorb,float factorc,float factord)        ///

/// 點到平面距離 呼叫u3d plane類處理

//////

//////

//////

public

static

float

dispoint2su***ce2(vector3 point, vector3 su***cepoint1, vector3 su***cepoint2, vector3 su***cepoint3)        public

static

float

dispoint2su***ce2(vector3 point, plane plane)        ///

/// 平面夾角

//////

//////

//////

//////

public

static

float

su***ceangle(vector3 su***ce1point1, vector3 su***ce1point2, vector3 su***ce1point3, vector3 su***ce2point1, vector3 su***ce2point2, vector3 su***ce2point3)        public

static

float

su***ceangle(plane plane1,plane plane2)    }

警告:因為這些函式都涉及到大量的數**算,尤其是資料都還是float,效能開銷較大,盡量避免使用。

unity是一款3d引擎,設計一款3d遊戲時,經常會涉及到3d的運算,比如兩點之間的距離,向量的一些操作等。

unity已經封裝好了一些常用函式在vector3和plane類中,如兩點之間的距離,向量之間的夾角,向量的投影計算等。

這裡說一下的是點到直線的距離,根據投影及勾股定理計算。

///

/// 點到直線距離

//////

點座標///

直線上乙個點的座標

///直線上另乙個點的座標

///public

static

float

dispoint2line(vector3 point,vector3 linepoint1,vector3 linepoint2)

下面提供了點到面的距離及面夾角的計算,不過是對一些函式呼叫的二次封裝,僅供參考

using unityengine;///

///

///public

class geometrytools    ///

/// 點到平面的距離 自行推演函式

//////

//////

//////

public

static

float

dispoint2su***ce(vector3 point,vector3 su***cepoint1,vector3 su***cepoint2,vector3 su***cepoint3)        public

static

float

dispoint2su***ce(vector3 point, float factora,float factorb,float factorc,float factord)        ///

/// 點到平面距離 呼叫u3d plane類處理

//////

//////

//////

public

static

float

dispoint2su***ce2(vector3 point, vector3 su***cepoint1, vector3 su***cepoint2, vector3 su***cepoint3)        public

static

float

dispoint2su***ce2(vector3 point, plane plane)        ///

/// 平面夾角

//////

//////

//////

//////

public

static

float

su***ceangle(vector3 su***ce1point1, vector3 su***ce1point2, vector3 su***ce1point3, vector3 su***ce2point1, vector3 su***ce2point2, vector3 su***ce2point3)        public

static

float

su***ceangle(plane plane1,plane plane2)    }

警告:因為這些函式都涉及到大量的數**算,尤其是資料都還是float,效能開銷較大,盡量避免使用。

Unity立體幾何 點到直線距離計算

unity是一款3d引擎,設計一款3d遊戲時,經常會涉及到3d的運算,比如兩點之間的距離,向量的一些操作等。unity已經封裝好了一些常用函式在vector3和plane類中,如兩點之間的距離,向量之間的夾角,向量的投影計算等。這裡說一下的是點到直線的距離,根據投影及勾股定理計算。點到直線距離 點座...

計算幾何 點到直線的距離 投影點

彙總篇 計算幾何彙總 求ad有很多種方法,可以用勾股定理 這裡用的三角函式 x acos cos x ad ba sin x 如果x是鈍角,ad ba sin pi x ba sin x 如果是直角,sin x 1,ad ba 設d dx,dy ad dx ax,dy ay bc c.x b.x,c...

點到直線距離求解

點到線距離求解演算法 解法一 向量法求解 1.當不知道直線公式,僅知道幾個點時 問題 比如a 1,2 b 2,3 c 0,2 求點a到bc距 向量bc 2,1 我們給它找乙個垂直向量,稱為法向量n 1,2 注意,這裡只要垂直就可以了,比如 3,6 也行,對結果無妨,但不能 0,0 取向量ab 1,1...