基于C++空间后方交会.docVIP

  • 7
  • 0
  • 约5.41千字
  • 约 5页
  • 2019-07-03 发布于广东
  • 举报
基于C++空间后方交会.doc

头文件 struct xy_XYZ { double x, y; double X, Z; }; struct xy_XYZ* points; 类 int CResection::Read_xy_XY乙Points。 { FILE *file = NULL; file = fopen(E:\\GCP.gcp“, rt); int GCP_Num = 0; fscanf(file, %dn, GCP_Num); points = new struct xy_XYZ[GCP_Num]; for (int i = 0; i GCP_Num; i++) { fscanfffile, %lf%lf%lf%lf%lfz points[i].x, points[i].y, points[i].X, points].匕 points[i].Z); } fclose(file); file = NULL; return GCP_Num; } +++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++ 另一个类头文件 double result[6]; double* R = result; 必须声明全局数组、变量 另外一个类 void CMatchPlatDoc::OnRection() CResection rest; FILE *filel = NULL; filel = fopen(,,E:\\H.txt,,/ “rt”); int m = 0; fscanf(filel, %d, m); double f = 0; fscanf(filel, “%lf“, f);〃获取 f, m 值 double Xso, Yso, Zso; double da_0 = 0, db_O = 0, dc_0 = 0; int gcp_num = rest. Read_xy_XYZ_Poi nts(); 〃外方位初始值 Xso = (rest.points[0].X + rest.points[l].X + rest.points[2].X + rest.points[3].X) / 4; Yso = (rest.points[0].Y + rest.points[l].Y + rest.points[2].Y + rest.points [3].Y) /4; Zso = m*f; 〃第一次迭代 double iteration[6]; double* I = iteration; I = JiSuanGuoCheng(Xso, Yso, Zso, da_0, db_O, dc_0); while (l[0] 0.000001 | |l[l] 0.000001 11 l[2] 0.000001 11 l[3] 2.90888208656e-5 11 I[4] 2.90888208656e-5 | | l[5] 2.90888208656e-5) { Xso = Xso + l[0]; Yso = Yso + l[l]; Zso = Zso + l[2]; da_0 = 0.0 + l[3]; db_0 = 0.0 + l[4]; dc_0 = 0.0 + l[5]; I = JiSuanGuoCheng(Xso, Yso, Zso, da_0, db_O, dc_0); } CString str; str.Format(%lf\n%lf\n%lf\n%lf\n%lf\n%lf\n,Xso, Yso, Zso, da_0, db_Oz dc_0); MessageBox(NULL, str,外方位元素”, MB_OK); } double* CMatchPlatDoc::JiSuanGuoCheng(double dX,double d^double dZ,double da,double db,double dc)〃返回外方位元素改正数 { CResection restl; FILE *filel = NULL; filel = fopen(,,E:\\H.txt/ rt); int m = 0; fscanf(filel, %d, m); double f = 0; fscanfffilel, ”%l化 f);〃获取 f, m 值 〃旋转矩阵 初始值已在上血主函数内给出 double al, a2, a3, bl, b2, b3, cl, c2, c3; al = cos(da)*cos(dc) - sin(da)*sin(db)*sin(dc); a2 = -cos(da)*sin(dc) -

文档评论(0)

1亿VIP精品文档

相关文档