一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

空間3點求三點所在空間圓的圓心空間坐標(biāo)

 戰(zhàn)神之家 2018-06-10

參考:http://blog.sina.com.cn/s/blog_648868460100h2b8.html(這個博主還有很多關(guān)于工程測量的知識和空間幾何計算的知識)

 

已知空間三點的坐標(biāo)為(x1,y1,z1,(x2,y2,z2),(x3,y3,z3),求這三個點所確定的空間圓的圓心坐標(biāo)和半徑。

分析可得約束條件:1、三點共面2、三點到空間圓心坐標(biāo)的距離相等。

從約束條件可得,4個自由項4個方程可解,可以列出線性代數(shù)方程組,即可用消元法求解;

即以下的(1)(2)(3)(4)四個方程組成的線性代數(shù)方程組

共面約束:

三點到空間圓心坐標(biāo)的距離相等約束:

 

(1) (2)(3)聯(lián)解可得(5)(6)同時消去R

通過(4)(5)(6)獲得關(guān)于圓心空間坐標(biāo)的線性代數(shù)方程組

利用opencv2.1實現(xiàn)的代碼如下:

 

CvScalar xyz1,CvScalar xyz2,CvScalar xyz3 分別為空間三點坐標(biāo)

//從空間圓上三點獲得所在圓的空間中心坐標(biāo)
CvMat * GETIrisCenter(CvScalar xyz1,CvScalar xyz2,CvScalar xyz3)
{

 double ABCD1[4];
 double ABCD2[4];
 double ABCD3[4];
 

 ABCD1[0]=xyz1.val[1]*xyz2.val[2]-xyz1.val[1]*xyz3.val[2]-xyz1.val[2]*xyz2.val[1]+xyz1.val[2]*xyz3.val[1]+xyz2.val[1]*xyz3.val[2]-xyz3.val[1]*xyz2.val[2];
 ABCD1[1]=-xyz1.val[0]*xyz2.val[2]+xyz1.val[0]*xyz3.val[2]+xyz1.val[2]*xyz2.val[0]-xyz1.val[2]*xyz3.val[0]-xyz2.val[0]*xyz3.val[2]+xyz3.val[0]*xyz2.val[2];
 ABCD1[2]=xyz1.val[0]*xyz2.val[1]-xyz1.val[0]*xyz3.val[1]-xyz1.val[1]*xyz2.val[0]+xyz1.val[1]*xyz3.val[0]+xyz2.val[0]*xyz3.val[1]-xyz3.val[0]*xyz2.val[1];
 ABCD1[3]=-xyz1.val[0]*xyz2.val[1]*xyz3.val[2]+xyz1.val[0]*xyz3.val[1]*xyz2.val[2]+xyz2.val[0]*xyz1.val[1]*xyz3.val[2]-xyz3.val[0]*xyz1.val[1]*xyz2.val[2]-xyz2.val[0]*xyz3.val[1]*xyz1.val[2]+xyz3.val[0]*xyz2.val[1]*xyz1.val[2];
 
 ABCD2[0]=(xyz2.val[0]-xyz1.val[0])*2;
 ABCD2[1]=(xyz2.val[1]-xyz1.val[1])*2;
 ABCD2[2]=(xyz2.val[2]-xyz1.val[2])*2;
 ABCD2[3]=xyz1.val[0]*xyz1.val[0]+xyz1.val[1]*xyz1.val[1]+xyz1.val[2]*xyz1.val[2]-(xyz2.val[0]*xyz2.val[0]+xyz2.val[1]*xyz2.val[1]+xyz2.val[2]*xyz2.val[2]);
 

 ABCD3[0]=(xyz3.val[0]-xyz1.val[0])*2;
 ABCD3[1]=(xyz3.val[1]-xyz1.val[1])*2;
 ABCD3[2]=(xyz3.val[2]-xyz1.val[2])*2;
 ABCD3[3]=xyz1.val[0]*xyz1.val[0]+xyz1.val[1]*xyz1.val[1]+xyz1.val[2]*xyz1.val[2]-(xyz3.val[0]*xyz3.val[0]+xyz3.val[1]*xyz3.val[1]+xyz3.val[2]*xyz3.val[2]);
 CvMat *ABC_mat=cvCreateMat(3,3,CV_64F);
 CvMat *D_mat=cvCreateMat(3,1,CV_64F);
 CvMat *Solve_mat=cvCreateMat(3,1,CV_64F);
 for(int i=0;i<3;i++)
 {
 
 cvSetReal2D(ABC_mat,0,i,ABCD1[i]) ;
 cvSetReal2D(ABC_mat,1,i,ABCD2[i]) ;
 cvSetReal2D(ABC_mat,2,i,ABCD3[i]) ;
 
        
 }
 
cvSetReal2D(D_mat,0,0,ABCD1[3]) ;
cvSetReal2D(D_mat,1,0,ABCD2[3]) ;
cvSetReal2D(D_mat,2,0,ABCD3[3]) ;
 CvMat *ABC_mat_Invert=cvCreateMat(3,3,CV_64F);
double InvertNum=cvInvert(ABC_mat,ABC_mat_Invert,CV_LU);//求逆

cvGEMM(ABC_mat_Invert,D_mat,-1,NULL,0,Solve_mat,0);//矩陣相乘


double r1=0;
double r2=0;
double r3=0;
for(int i=0;i<3;i++)//通過計算三點到中心的距離測試結(jié)果是否正確
{
 r1=(cvGetReal2D(Solve_mat,i,0)-xyz1.val[i])*(cvGetReal2D(Solve_mat,i,0)-xyz1.val[i])+r1;
  r2=(cvGetReal2D(Solve_mat,i,0)-xyz2.val[i])*(cvGetReal2D(Solve_mat,i,0)-xyz2.val[i])+r2;
   r3=(cvGetReal2D(Solve_mat,i,0)-xyz3.val[i])*(cvGetReal2D(Solve_mat,i,0)-xyz3.val[i])+r3;
}
cvReleaseMat(&ABC_mat);
cvReleaseMat(&D_mat);
cvReleaseMat(&ABC_mat_Invert);
return Solve_mat;//返回中心坐標(biāo)矩陣
}

 

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产亚洲成av人在线观看| 久久精品国产亚洲av麻豆| 欧美精品二区中文乱码字幕高清 | 在线观看国产成人av天堂野外 | 日韩少妇人妻中文字幕| 久久精品国产亚洲av久按摩| 日韩精品综合福利在线观看| 欧美日韩乱码一区二区三区| 在线免费视频你懂的观看| 91午夜少妇极品福利| 不卡免费成人日韩精品| 成人国产激情在线视频| 午夜视频免费观看成人| 老鸭窝老鸭窝一区二区| 香蕉尹人视频在线精品| 国产日韩欧美在线播放| 精品人妻精品一区二区三区| 欧美精品亚洲精品一区| 欧美亚洲另类久久久精品| 亚洲精品中文字幕在线视频| 欧美熟妇一区二区在线| 国产精品内射视频免费| 国产香蕉国产精品偷在线观看| 丰满的人妻一区二区三区| 亚洲国产欧美久久精品| 亚洲一区二区三区福利视频| 精品国产亚洲一区二区三区| 国产精品一区二区丝袜| 日韩国产亚洲欧美激情| 日本不卡一本二本三区| 国产亚洲神马午夜福利| 黄色片国产一区二区三区| 久久亚洲午夜精品毛片| 亚洲国产成人精品福利| 国产毛片不卡视频在线| 美女黄色三级深夜福利| 好吊色欧美一区二区三区顽频| 夜色福利久久精品福利| 少妇特黄av一区二区三区| 色哟哟哟在线观看视频| 久草视频这里只是精品|