实验报告 实验名称:立体像对前方交会 实验日期:2010.9 专业班级:资环学院 测绘2008013 班 学号:200801322 姓名:周少良 一.实验内容及要求 掌握前方交会的远离,编写计算机程序,在计算机上调试,输出结果并对结果进行检查。通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强综合运用所学知识解决实际问题的能力。 实验的具体要求如下: 1. 源程序名要遵循统一规定:以CH13**命名; 2. 输入像点坐标及外方位元素,要求一定以文件形式输入、输出数据; 3. 3 编写前方交会程序,编程语言不限; 4. 编译及运行前方交会程序,输出计算结果; 5. 提交成果:程序框图,程序源代码,计算结果文件。 二.实验过程 1. 程序框图 2. 程序源代码:(采用vc6.0 编译环境,c 语言书写) #include #include #include double Xs[2],Ys[2],Zs[2],phi[2],omega[2],kappa[2],f; double m1[3],m2[3];//同名像点坐标 double d1[3],d2[3];//模型点物方坐标 //旋转矩阵 读入数据,采用文件方法,分别赋给相应的外方位元素 要求用户输入像点坐标 计算摄影基线分量,Bu, Bv , Bw 组成旋转矩阵,R1,R2 分别计算u1,v1,w 1 和 u2,v2,w 2 计算N1,N2 输出结果 void Rotationmatrix(double phi,double omega,double kappa,double matrix[]) { matrix[0]= cos(phi)*cos(kappa)-sin(phi)*sin(omega)*sin(kappa); matrix[1]= -cos(phi)*sin(kappa)-sin(phi)*sin(omega)*cos(kappa); matrix[2]= -sin(phi)*cos(omega); matrix[3]= cos(omega)*sin(kappa); matrix[4]= cos(omega)*cos(kappa); matrix[5]= -sin(omega); matrix[6]= sin(phi)*cos(kappa)+cos(phi)*sin(omega)*sin(kappa); matrix[7]= -sin(phi)*sin(kappa)+cos(phi)*sin(omega)*cos(kappa); matrix[8]= cos(phi)*cos(omega); } //矩阵相乘 void Multmatrix(double *A, double *B, double *Result,int m, int p, int n) { int i; int j; int k; for(i=0; i