版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摄影测量学单像空间后方交会程序设计作业摄影测量学单像空间后方交会程序设计作业摄影测量学单像空间后方交会程序设计作业xxx公司摄影测量学单像空间后方交会程序设计作业文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度usingSystem;using;using;namespace单像空间后方交会{classProgram{staticvoidMain(string[]args){intx0,y0,i,j;doublef,m;("请输入像片比例尺:");m=());("请输入像片的内方位元素x0:");//均以毫米为单位x0=());("请输入像片的内方位元素y0:");y0=());("请输入摄影机主距f:");f=());();//输入坐标数据double[,]zuobiao=newdouble[4,5];for(i=0;i<4;i++){for(j=0;j<5;j++){if(j<3){("请输入第{0}个点的第{1}个地面坐标:",i+1,j+1);zuobiao[i,j]=());}else{("请输入第{0}个点的第{1}个像点坐标:",i+1,j-2);zuobiao[i,j]=());}}();}//归算像点坐标for(i=0;i<4;i++){for(j=3;j<5;j++){if(j==3)zuobiao[i,j]=zuobiao[i,j]-x0;elsezuobiao[i,j]=zuobiao[i,j]-y0;}}//计算和确定初值doublezs0=m*f,xs0=0,ys0=0;for(i=0;i<4;i++){xs0=xs0+zuobiao[i,0];ys0=ys0+zuobiao[i,1];}xs0=xs0/4;ys0=ys0/4;//逐点计算误差方程系数double[,]xishu=newdouble[8,6];for(i=0;i<8;i+=2){doublex,y;x=zuobiao[i/2,3];y=zuobiao[i/2,4];xishu[i,0]=xishu[i+1,1]=-1/m;xishu[i,1]=xishu[i+1,0]=0;xishu[i,2]=-x/(m*f);xishu[i,3]=-f*(1+x*x/(f*f));xishu[i,4]=xishu[i+1,3]=-x*y/f;xishu[i,5]=y;xishu[i+1,2]=-y/(m*f);xishu[i+1,4]=-f*(1+y*y/(f*f));xishu[i+1,5]=-x;}//计算逆阵double[,]dMatrix=matrixChe(matrixTrans(xishu),xishu);double[,]dReturn=ReverseMatrix(dMatrix,6);("逆矩阵为:");if(dReturn!=null){matrixOut(dReturn);}//求解过程doublephi0=0,omega0=0,kappa0=0;intq=0;double[,]r=newdouble[3,3];double[,]jinsi=newdouble[4,2];double[]chazhi=newdouble[8];double[]jieguo=newdouble[6];double[,]zhong=matrixChe(dReturn,matrixTrans(xishu));do{//计算旋转矩阵rr[0,0]=(phi0)*(kappa0)-(phi0)*(omega0)*(kappa0);r[0,1]=(phi0)*(kappa0)-(phi0)*(omega0)*(kappa0);r[0,2]=(phi0)*(omega0);r[1,0]=(omega0)*(kappa0);r[1,1]=(omega0)*(kappa0);r[1,2]=(omega0);r[2,0]=(phi0)*(kappa0)+(phi0)*(omega0)*(kappa0);r[2,1]=(phi0)*(kappa0)+(phi0)*(omega0)*(kappa0);r[2,2]=(phi0)*(omega0);//计算x,y的近似值for(i=0;i<4;i++){jinsi[i,0]=-f*(r[0,0]*(zuobiao[i,0]-xs0)+r[1,0]*(zuobiao[i,1]-ys0)+r[2,0]*(zuobiao[i,2]-zs0))/(r[0,2]*(zuobiao[i,0]-xs0)+r[1,2]*(zuobiao[i,1]-ys0)+r[2,2]*(zuobiao[i,2]-zs0));jinsi[i,1]=-f*(r[0,1]*(zuobiao[i,0]-xs0)+r[1,1]*(zuobiao[i,1]-ys0)+r[2,1]*(zuobiao[i,2]-zs0))/(r[0,2]*(zuobiao[i,0]-xs0)+r[1,2]*(zuobiao[i,1]-ys0)+r[2,2]*(zuobiao[i,2]-zs0));}for(i=0;i<8;i+=2){chazhi[i]=zuobiao[i/2,3]-jinsi[i/2,0];chazhi[i+1]=zuobiao[i/2,4]-jinsi[i/2,1];}for(i=0;i<(0);i++){doublek=0;for(j=0;j<(1);j++){k=k+zhong[i,j]*chazhi[j];}jieguo[i]=k;}//求新的近似值xs0+=jieguo[0];ys0+=jieguo[1];zs0+=jieguo[2];phi0+=jieguo[3];omega0+=jieguo[4];kappa0+=jieguo[5];q++;if(q>1000)break;}while((jieguo[0])>||(jieguo[1])>||(jieguo[2])>;("共进行了{0}次运算",q);("旋转矩阵为");matrixOut(r);for(i=0;i<(0);i++){("第{0}个外方位元素为:{1}",i+1,jieguo[i]);}}//矩阵转置publicstaticdouble[,]matrixTrans(double[,]X){double[,]A=X;double[,]C=newdouble[(1),(0)];for(inti=0;i<(1);i++)for(intj=0;j<(0);j++){C[i,j]=A[j,i];}returnC;}//矩阵输出publicstaticvoidmatrixOut(double[,]X){double[,]C=X;for(inti=0;i<(0);i++){for(intj=0;j<(1);j++){("{0}",C[i,j]);}("\n");}}//二维矩阵相乘publicstaticdouble[,]matrixChe(double[,]X,double[,]Y){inti,j,n;doublem;double[,]C=X;double[,]D=Y;double[,]E=newdouble[(0),(0)];for(i=0;i<(0);i++){for(n=0;n<(0);n++){m=0;for(j=0;j<(1);j++){m=m+C[i,j]*D[j,n];}E[i,n]=m;}}returnE;}//计算行列式的值publicstaticdoubleMatrixValue(double[,]MatrixList,intLevel){double[,]dMatrix=newdouble[Level,Level];for(inti=0;i<Level;i++)for(intj=0;j<Level;j++)dMatrix[i,j]=MatrixList[i,j];doublec,x;intk=1;for(inti=0,j=0;i<Level&&j<Level;i++,j++){if(dMatrix[i,j]==0){intm=i;for(;dMatrix[m,j]==0;m++);if(m==Level)return0;else{for(intn=j;n<Level;n++){c=dMatrix[i,n];dMatrix[i,n]=dMatrix[m,n];dMatrix[m,n]=c;}k*=(-1);}}for(ints=Level-1;s>i;s--){x=dMatrix[s,j];for(intt=j;t<Level;t++)dMatrix[s,t]-=dMatrix[i,t]*(x/dMatrix[i,j]);}}doublesn=1;for(inti=0;i<Level;i++){if(dMatrix[i,i]!=0)sn*=dMatrix[i,i];elsereturn0;}returnk*sn;}//计算逆阵publicstaticdouble[,]ReverseMatrix(double[,]dMatrix,intLevel){doubledMatrixValue=MatrixValue(dMatrix,Level);if(dMatrixValue==0)returnnull;double[,]dReverseMatrix=newdouble[Level,2*Level];doublex,c;for(inti=0;i<Level;i++){for(intj=0;j<2*Level;j++){if(j<Level)dReverseMatrix[i,j]=dMatrix[i,j];elsedReverseMatrix[i,j]=0;}dReverseMatrix[i,Level+i]=1;}for(inti=0,j=0;i<Level&&j<Level;i++,j++){if(dReverseMatrix[i,j]==0){intm=i;for(;dMatrix[m,j]==0;m++);if(m==Level)returnnull;else{for(intn=j;n<2*Level;n++)dReverseMatrix[i,n]+=dReverseMatrix[m,n];}}x=dReverseMatrix[i,j];if(x!=1){for(intn=j;n<2*Level;n++)if(dReverseMatrix[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广州市正骨医院合同制人员招聘备考题库及完整答案详解一套
- 上高县公安局2025年治安巡防队员招聘备考题库及1套参考答案详解
- 2025年广德市人民法院劳务派遣服务招聘6人备考题库及答案详解一套
- 河南省定向厦门大学选调考试真题2024
- 2025年浙江清华长三角研究院招聘备考题库完整答案详解
- 2025年恩平市公安局警务辅助人员招聘备考题库及答案详解1套
- cy课程设计的目的
- 2025 九年级语文下册现代文结构层次划分课件
- 2025年南京市公安局江宁分局公开招聘辅警备考题库及一套答案详解
- java课程设计跳动的小球
- 浙江省温州市2024-2025学年高一上学期期末数学试题B卷(含答案)
- 绿色生物技术:天然产物制备与应用
- 家电元旦活动方案策划(3篇)
- 2026上海黄浦区城银清算服务有限责任公司校园招聘16人备考题库及完整答案详解一套
- 硬化混凝土地面施工规范
- 焊接生产管理概述
- 森林提质改造课件
- 成都市第七中学2025-2026学年高二上学期11月考试语文试卷
- 北京市海淀区2025-2026年高三语文上学期期中考试作文《说“论辩”》3篇范文
- 2025年高中历史上学期模拟试卷(含答案)
- 电车专业维修知识培训课件
评论
0/150
提交评论