ポイントとスペースプレーンラインの距離

図1に示すように、平面の点の間の直線距離。

 

 コード:

構造体のポイント{
     ダブルX。
    ダブルY; 
} 

構造体PlaneEquation {
     ダブルA。
    ダブルB;
    ダブルC; 
} 


// 计算点到面距离
ダブル DIST(ポイント・PT、PlaneEquation&PE)// 点と平面との間の距離
{
     ダブル DT = 0.0 ダブルミリアンペア、ヘクトパスカル、MC、MX、MY; 

    ミリアンペア = pe.A。
    ヘクトパスカル = pe.B。
    mCの = pe.C。

    MX = pt.X。
    俺の= Pt.Y; 


    IF(MC * + MCのMBにミリアンペア+ミリアンペア* MB)// もしミリアンペア*ミリアンペア+ヘクトパスカル*ヘクトパスカル+ mCと* mCと== 0 直記載収縮点
    { 
        DT = ABS(MX +ミリアンペア* MCの* + MY MB)/ SQRT(ミリアンペア+ミリアンペア* MBののMB); 
    } 
    
    { 
        STD :: COUT << " 式::入力エラー係数がすべてゼロである!!" ; 
        DT = pt.mod() ; 
    } // ザのをポイントする平面ザ原点(PT)に還元される(ゼロ)の距離.. 
    戻りDT; 
}

 

図2に示すように、空間の点の間の直線距離:

 

 

 

 

 

 

// 直線外点のための空間線形2点の使用(X0 Y0 Z0)

Xcの =(X2-X1)* T + X1、
YC =(Y2-Y1)* T + Y1; 
Zcは =(Z2-Z1)* T + Z1;    // ペダル

T =((X1-X2)*(X1-X0)+(YL-Y2)*(Y0イル)+の-ZL)*(Z0)の(ZL-Z2)/((X2- X1)*(X1-X2)+(YL-Y2)*(YL-Y2)+(のZL-Z2)*(Z2- Z1から))

D = SQRT((X0-XC)*(X0-XC)+( YC-Y0)*(Y0-YC)+の-ZC(Z0)の-ZC *(Z0))   // 2ノルムを解決

 

おすすめ

転載: www.cnblogs.com/lovebay/p/11506504.html