摄影测量后方交会法求解外方位元素Word文件下载.docx
- 文档编号:21578648
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:11
- 大小:71.85KB
摄影测量后方交会法求解外方位元素Word文件下载.docx
《摄影测量后方交会法求解外方位元素Word文件下载.docx》由会员分享,可在线阅读,更多相关《摄影测量后方交会法求解外方位元素Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
/*存储a1,a2.a3*/doubleb=newdouble3;
/*存储b1,b2,b3*/doublec=newdouble3;
/*存储c1,c2,c3*/doubleXX=newdouble4;
doubleYY=newdouble4;
doubleZZ=newdouble4;
double,L=newdouble8,1;
double,JSZB=newdouble2,4;
/*像点近似坐标*/double,A=newdouble8,6;
/*系数阵*/double,AT=newdouble6,8;
double,AB=newdouble6,6;
double,AN=newdouble6,6;
double,AL=newdouble6,1;
double,Dv=newdouble6,1;
double,AX=newdouble8,1;
/*系数阵与改正数矩阵的乘积*/double,V=newdouble8,1;
/*中误差矩阵*/privatevoidQchuzhi()for(inti=0;
i4;
i+)Sx+=zuobiao2,i;
for(inti=0;
i+)Sy+=zuobiao3,i;
i+)zuobiao0,i=zuobiao0,i/1000;
zuobiao1,i=zuobiao1,i/1000;
/*求外方位元素初始值*/=0;
m=50000;
f=0.15324;
Xs=Sx/4;
Ys=Sy/4;
Zs=m*f;
/*求旋转矩阵R,像点坐标近似值,常数项矩阵L,系数矩阵A*/privatevoidR()/旋转矩阵Ra0=Math.Cos()*Math.Cos()-Math.Sin()*Math.Sin()*Math.Sin();
a1=-Math.Cos()*Math.Sin()-Math.Sin()*Math.Sin()*Math.Cos();
a2=-Math.Sin()*Math.Cos();
b0=Math.Cos()*Math.Sin();
b1=Math.Cos()*Math.Cos();
b2=-Math.Sin();
c0=Math.Sin()*Math.Cos()+Math.Cos()*Math.Sin()*Math.Sin();
c1=-Math.Sin()*Math.Sin()+Math.Cos()*Math.Sin()*Math.Cos();
c2=Math.Cos()*Math.Cos();
i+)XXi=a0*(zuobiao2,i-Xs)+b0*(zuobiao3,i-Ys)+c0*(zuobiao4,i-Zs);
YYi=a1*(zuobiao2,i-Xs)+b1*(zuobiao3,i-Ys)+c1*(zuobiao4,i-Zs);
ZZi=a2*(zuobiao2,i-Xs)+b2*(zuobiao3,i-Ys)+c2*(zuobiao4,i-Zs);
/由共线条件方程式求得xo,yo的近似值JSZB0,i=-f*(XXi)/(ZZi);
JSZB1,i=-f*(YYi)/(ZZi);
/常数项矩阵Li*2,0=zuobiao0,i-JSZB0,i;
Li*2+1,0=zuobiao1,i-JSZB1,i;
i+)A2*i,0=(a0*f+a2*zuobiao0,i)/ZZi;
A2*i,1=(b0*f+b2*zuobiao0,i)/ZZi;
A2*i,2=(c0*f+c2*zuobiao0,i)/ZZi;
A2*i,3=zuobiao1,i*Math.Sin()-(zuobiao0,i*(zuobiao0,i*Math.Cos()-zuobiao1,i*Math.Sin()/f+f*Math.Cos()*Math.Cos();
A2*i,4=-f*Math.Sin()-zuobiao0,i*(zuobiao0,i*Math.Sin()+zuobiao1,i*Math.Cos()/f;
A2*i,5=zuobiao1,i;
A2*i+1,0=(a1*f+a2*zuobiao1,i)/ZZi;
A2*i+1,1=(b1*f+b2*zuobiao1,i)/ZZi;
A2*i+1,2=(c1*f+c2*zuobiao1,i)/ZZi;
A2*i+1,3=-zuobiao0,i*Math.Sin()-(zuobiao1,i*(zuobiao0,i*Math.Cos()-zuobiao1,i*Math.Sin()/f-f*Math.Sin()*Math.Cos();
A2*i+1,4=-f*Math.Cos()-zuobiao1,i*(zuobiao0,i*Math.Sin()+zuobiao1,i*Math.Cos()/f;
A2*i+1,5=-zuobiao0,i;
/*定义一个函数用来求矩阵的转置*/privatevoidT(double,A,double,B,inta,intb)for(inti=0;
ib;
i+)for(intj=0;
ja;
j+)Bi,j=Aj,i;
/*定义一个函数用来求矩阵的乘积*/privatevoidMultiply(double,A,double,B,double,C,inta,intb,intc)for(inti=0;
ia;
jc;
j+)Ci,j=0;
for(intm=0;
mb;
m+)Ci,j=Ai,m*Bm,j+Ci,j;
privatevoidsubstract(double,A,double,B,double,C,inta,intb)for(inti=0;
ia;
jb;
j+)Ci,j=Ai,j-Bi,j;
/*定义一个函数用来求矩阵的逆*/矩阵的求逆函数publicdouble,ReverseMatrix(double,dMatrix,intLevel)doubledMatrixValue=MatrixValue(dMatrix,Level);
if(dMatrixValue=0)returnnull;
double,dReverseMatrix=newdoubleLevel,2*Level;
doublex,c;
iLevel;
j2*Level;
j+)if(jLevel)dReverseMatrixi,j=dMatrixi,j;
elsedReverseMatrixi,j=0;
dReverseMatrixi,Level+i=1;
for(inti=0,j=0;
iLevel&
jLevel;
i+,j+)if(dReverseMatrixi,j=0)intm=i;
for(;
dMatrixm,j=0;
m+);
if(m=Level-1)returnnull;
else/Addi-rowwithm-rowfor(intn=j;
n2*Level;
n+)dReverseMatrixi,n+=dReverseMatrixm,n;
/Formatthei-rowwith1startx=dReverseMatrixi,j;
if(x!
=1)for(intn=j;
ni;
s-)x=dReverseMatrixs,j;
for(intt=j;
t=0;
i-)for(intj=i+1;
j+)if(dReverseMatrixi,j!
=0)c=dReverseMatrixi,j;
for(intn=j;
n+)dReverseMatrixi,n-=(c*dReverseMatrixj,n);
double,dReturn=newdoubleLevel,Level;
j+)dReturni,j=dReverseMatrixi,j+Level;
returndReturn;
/求得矩阵行列式的值publicdoubleMatrixValue(double,MatrixList,intLevel)double,dMatrix=newdoubleLevel,Level;
j+)dMatrixi,j=MatrixListi,j;
doublec,x;
intk=1;
i+,j+)if(dMatrixi,j=0)intm=i;
dMatrixm-2,j=0;
if(m=Level)return0;
else/Rowchangebetweeni-rowandm-rowfor(intn=j;
s-)x=dMatrixs,j;
tLevel;
t+)dMatrixs,t-=dMatrixi,t*(x/dMatrixi,j);
doublesn=1;
i+)if(dMatrixi,i!
=0)sn*=dMatrixi,i;
elsereturn0;
returnk*sn;
privatevoidoutput()Console.WriteLine(外方位元素Xs:
t0m,Xs);
Console.WriteLine(外方位元素Ys:
t0m,Ys);
Console.WriteLine(外方位元素Zs:
t0m,Zs);
Console.WriteLine(外方位元素:
t0度,*n);
i=0.00002|Math.Abs(Dv1,0)=0.00002|Math.Abs(Dv2,0)=0.00002|Math.Abs(Dv3,0)=0.00002|Math.Abs(Dv4,0)=0.00002|Math.Abs(Dv5,0)=0.00002|Math.Abs(V0,0)=0.00002|Math.Abs(V1,0)=0.00002|Math.Abs(V2,0)=0.00002|Math.Abs(V3,0)=0.00002|Math.Abs(V4,0)=0.00002|Math.Abs(V5,0)=0.00002|Math.Abs(V6,0)=0.00002|Math.Abs(V7,0)=0.00002);
output();
staticvoidMain(stringargs)ProgramHS=newProgram();
HS.xhqiujie();
结果如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 摄影 测量 后方 交会 求解 外方 元素