色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

平面平行度計算公式

錢艷冰2年前94瀏覽0評論

平面平行度計算公式?

Ax+By+Cz+D=0這一平面)

2.在需要計算的面上找三點,通過公式計算出與面的距離D1,D2,D3,對這三個點進行計算以求的最終平面度

實現

1.求基準面

Test中調用情況(模擬數據輸入)

void Test() {

double array1[3][3] = { { 2.345,1.286,2.369 },{ 3.3847,3.345,3.534 },{ 4,4,4.2 }};

//定義數組指針指向第一個元素(int[])

double (*p)[3] = array1;

double * pABCD=getABCD(p);

cout<<"基準平面方程為:"<<pABCD[0]<<"X+"<<pABCD[1]<<"Y+"<<pABCD[2]<<"Z+"<<pABCD[3]<<"=0"<<endl;

}

三點求平面度公式

/*

計算基礎面平面公式系數

parms:指向二維數組的指針,其中數組中裝著3個點的三維坐標

ret:abcd系數的double數組

*/

double * getABCD(double (*parms)[3] ){

//定義裝載系數ABCD的數組

double result[4] ;

result[0] = parms[0][1]*parms[1][2] - parms[0][1] *parms[2][2] - parms[1][1]*parms[0][2] + parms[1][1]* parms[2][2] + parms[2][1]*parms[0][2] - parms[2][1]*parms[1][2];

result[1] = -parms[0][0]*parms[1][2] + parms[0][0]*parms[2][2] + parms[1][0]*parms[0][2] - parms[1][0]* parms[2][2] - parms[2][0]* parms[0][2] + parms[2][0]* parms[1][2];

result[2] = parms[0][0]*parms[1][1] - parms[0][0]*parms[2][1] - parms[1][0]*parms[0][1] + parms[1][0]*parms[2][1] + parms[2][0]*parms[0][1] - parms[2][0]*parms[1][1];

result[3] = parms[0][0]*parms[1][1]*parms[2][2] - parms[0][0] *parms[2][1]*parms[1][2] - parms[1][0]*parms[0][1]*parms[2][2] + parms[2][0]*parms[0][1] *parms[1][2] + parms[1][0]*parms[2][1]*parms[0][2] - parms[2][0]*parms[1][1]*parms[0][2];

//返回

double *p = result;

return p

登錄后復制

?

該函數細致的使用了數組指針這一概念,參考

3.運行結果

但在沒有已知基準面的情況下,基準面計算需根據所有模擬輸入的點來計算,但目前只隨機取三點,結果偶然性極大,下一步會讓所有數據參加運算。

當前思路是首先去除無效值,即Z(高度值)為極限值的數據,因為這些數據位置可能處于掃描底版。然后對剩余數據進行分組處理,三個數據點一組,共計(n/3)組。這些數據分別計算基準平面的系數ABCD,最后對ABCD,取平均值。最后即為真正的基準平面

java 三維數組,平面平行度計算公式