摄影测量学单像空间后方交会程序设计作业_第1页
摄影测量学单像空间后方交会程序设计作业_第2页
摄影测量学单像空间后方交会程序设计作业_第3页
摄影测量学单像空间后方交会程序设计作业_第4页
摄影测量学单像空间后方交会程序设计作业_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、using System; System. Collections Generic; using .System. Linq; using System. Text; using namespace 单像空间后方交会 class Program static void Main( string args) for (j 二 0; j 5; j+) int xO, yO, i, j; double f, m; Console . Write (请输入像片比例尺:”); double Parse ( Console ReadLineO): Console . Write(请输入像片的内方位元素x0

2、: ); /均以毫米为单 x0 二位 int . Parse( Console . ReadLineO); Console . Write(请输入像片的内方位元素y0:); 0 -int Parse( Console ReadLine(): Console . Write(请输入摄影机主距f:); double Parse( Console ReadLineO); Console WriteLineO ; / 输入坐标数据 double , zuobiao =new double 4, 5; (i = 0; i 4; i卄) for Console Write( zuobiaoLi, j= i

3、f (J 3) 请输入第0个点的第1个地面坐标:”,i + 1, j else Console Write( zuobiaoLi, j= + 1) ; double Parse( Console ReadLineO); 请输入第0个点的第1个像点 坐标:”、i + 1, j - 2); double Parse( Console ReadLineO); Console WriteLineO ; /归算像点坐标 for (i = 0; i 4; i+) for (j 二 3; j 5; j+) if (j = 3) zuobiaoEi, j = zuobiaoEi, j - xO; else z

4、uobiao_i, jj = zuobiao_i, jj 一 yO; /计算和确定初值 double zsO = m * f, xsO = 0, ysO = 0; for (i = 0; i 4; i+) xsO = xsO + zuobiaoi, 0; ysO = ysO + zuobiaoi, 1; xsO 二 xsO / 4; ysO 二 ysO / 4; / 逐点计算误差方程系数 double , xishu = new double 8, 6; for (i = 0; i 8; i += 2) double x, y; / 2, 4; m; xishui, 1 = xishui +

5、1, 0 = 0; (1 + x * x / (f * f); y / f; xishui, 5 = y; xishui + 1, y * y / (f * f) ; xishuEi + 1, 5=- 11 二-1 3 = -f 3 = -x -f * (1 x = zuobiaoi / 2, 3; y = zuobiaoi xishui, 0 = xishui + 1, xishuEi, 2二-x / (m * f) ; xishuEi, xishui, 4 = xishui + 1, 2二-y / (m * f) ; xishuEi + 1, 4= /计算逆阵 double , dMatr

6、ix =matrixChe(matrixTrans(xishu), xishu); double , J dReturn = ReverseMatrix(dMatrix, 6): Console . WriteLine (逆矩阵为:”); if (dReturn != null ) matrixOut(dReturn); /求解过程double double , r = new double , jinsi =double chazhi = double jieguo = phiO = 0, omegaO = 0, kappaO = 0; int q = 0; double 3, 3; new

7、 double 4, 2; new double 8; new double 6; r0, 0二 Math Sin(kappaO); r0, 1= double , zhong = matrixChe(dReturn, matrixTrans(xishu); do /计算旋转矩阵r Math. Cos (phiO) * Math. Cos(kappaO) - Math. Cos (phiO) * Math Sin (kappaO) 一 Math. Sin(phiO) * Math. Sin(phiO)水 Math. Sin(omegaO) * Math. Sin(omegaO) * Math.

8、 Cos(kappaO); r0, 2= -rl, 0 =rl, 1 二 rl, 2 =-r2, 0二 Math. Sin(kappaO); r2, 1二 Math. Sin(phiO) * Math. Cos(omegaO) * Math. Cos(omegaO) * Math Sin(omegaO); Math. Sin(phiO) * Math Cos(omegaO); Math Sin(kappaO); Math. Cos(kappaO); Math. Cos(kappaO) + Math. Cos (phiO) * Math. Sin(phiO) Math. Sin(kappaO)

9、+ Math. Cos (phiO)水 Math. Sin(omegaO) * Math. Sin(omegaO) * 计算 for x, y (i 二 0; Math. Cos (phiO) 的近似值 i 4; i+) Math Cos(omegaO); jinsii, 0 (zuobiaoi, - ysO) + r2, 01 * (zuobiaoEi, =-f * 11 (r0, 0 * (zuobiaoi, 0 - xsO) + r1, 0 2 - zsO) / (r0, 2 * (zuobiaoEi, OZ - xsO) + r1, 2 * (zuobiaoLi, 11 - ysO)

10、+ r 2, 2 * (zuobiaoLi, 2 - zsO): jinsi i, 1 = -f * (r 0, 1 * (zuobiaoi, 0 - xsO) + r 1, 1 * (zuobiaoi, 1 - ysO) + r2, lj * (zuobiaoi, 2 - zsO) / (r0, 2 * (zuobiaoLi, 01 - xsO) + r1, 2 * (zuobiaoLi, - ysO) + r 2, 2 * (zuobiaoi, 2 - zsO): for (i = 0; i 8; i +二 2) chazhii = zuobiaoi / 2, 3 - jinsii / 2

11、, 0; chazhii + 1 = zuobiaoi / 2, 4- jinsii / 2, 1: for (i = 0; i zhong. GetLength(O); i+) double k = 0; for (j 二 0; j 1000) break ; while ( Math. Abs(jieguo01) 0.020Math. Abs(jieguolj) 0.020) Math. Abs(jieguo2) 0.020):| Console . WriteLine(共进行了 0次运算,q); Console . WriteLine(旋转矩阵为“); matrixOut(r); for

12、 (i = 0; i jieguo. GetLength(O); i+) Console . Write(第0个外方位元素为:,i + 1, jieguoEi); /矩阵转置 public static double , matrixTrans( double , X) double , A = X; double , C = new double A. GetLength(l), A. GetLength(O); for ( int i = 0; i A. GetLength(l); i+) for ( int j 二 0; j A. GetLength(O):十+) CEi, j= Aj,

13、 i; return C; 矩阵输出 public static void matrixOut( double , X) double , C = X; for ( int i = 0; i C. GetLength(O): i+) for ( int j 二 0; j C. GetLength(l) : j+) Console Write ( 0 , Ci, j); Console Write( n); /二维矩阵相乘 public static double , matrixChe( double , X, double , Y) int i, j, n; double m; double

14、 , C = X; double , D = Y; double , E = new double C. GetLength(O), C. GetLength(O); for (i = 0; i C. GetLength(O) ; i+) for (n = 0; n C. GetLength(O) ; n+) m = 0; for (j 二 0; j C. GetLength(l); (j卄) m = m + Ci, j * Dj, n; Ei, n = m; return E; 计算行列式的 int Level) public static double MatrixValue( doubl

15、e , J MatrixList, double , dMatrix = new double Level, Level; for (int i = 0; i Level; i+) for ( int j = 0; j Level: j+) dMatrixi, j = MatrixListi, j; double c, x; int k 二 1; for ( int i 二 0, j 二 0; i Level i+, j+) if 0) (dMatrixi, j= int m = i; for (; dMatrixm, j = 0; m+) ; if (m 二二 Level) return 0

16、; else for ( int n = j; n i; s-) x = dMatrixEs, j; for ( int t = j; t Level: t+) dMatrixs, t -二 dMatrixi, t * (x / dMatrixi, j); double sn = 1; for ( int i = 0; i Level; i+) if (dMatrixEi, i != 0) sn *= dMatrixi, il; else return 0; return k * sn; /计算逆阵 ReverseMatrix( double , dMatrix, int Level) pub

17、lic static double , double dMatrixValue = HatrixValue(dMatrix, Level); if (dMatrixValue = 0) return null ; double , dReverseMatrix = new double Level, 2 * Level; double x, c; for ( int i = 0; i Level; i+) for ( int j = 0; j 2 * Level; j+) if (j Level) dReverseMatrixi, jj = dMatrixEi, j; else dRevers

18、eMatrixi, dRev4JsM9trixi, Level + i= 1; for ( int i 二 0, j = 0; i Level i+, j+) if (dReverseMatrixi, j= 0) int m = i; for (; dMatrixm, j = 0; m+) ; if (m = Level) return null ; else for ( int n = j; n 2 * Level: n+) dReverseMatrixi, n +二 dReverseMatrixLm, n; ) x = dReverseMatrixi, j; if (x != 1) for ( int n = j; n i; s-) x = dReverseMatrixs, j; for ( int t = j; t = 0; i-) for ( int j = i + 1; j Level; j+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论