资源简介
C++版空间后方交会代码,提供3种实现形式,并附有实验报告
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include “MatrixOperation.h“
#include “CResection.h“
//Download by http://www.codefans.net
#define MAXITERATION 10
#define PI 3.1415926
using namespace std;
CResection::~CResection()
{
}
CResection::CResection()
{
bDone = false;
}
CResection::CResection(double PhotographicScale double focus char* filePathName)
{
bDone = false;
m = PhotographicScale;
f = focus;
dotNum = 0;
sd.empty();
memcpy(filenamefilePathNameMAX_PATH);
InitData();
Iterator();
}
void CResection::InitData()
{
//打开文件以备读取数据
// cout <<“开始读取数据...“< ifstream datafile1(filenameios::in | ios::nocreate);
if( !datafile1)
{
// cout<<“打开文件失败 文件可能不存在“< // system(“pause“);
_exit(1);
}
int i; //文本文件行数,即已知点个数
string temp;
while(getline(datafile1 temp))
dotNum ++; //统计行数
datafile1.close();
ifstream datafile2(filenameios::in | ios::nocreate);
SourceData sdtemp;
for (i = 0; i != dotNum; i ++)
{
datafile2 >> sdtemp.x >> sdtemp.y >> sdtemp.X >> sdtemp.Y >> sdtemp.Z;
sd.push_back(sdtemp);
}
datafile2.close();
// cout <<“读取数据完毕...“< }
bool CResection::CheckPrecision(double* deta)
{
//2.9088820866572159615394846141477e-5 即 0.1′的弧度表示
bool ret;
ret = (fabs(deta[0])<0.000001 && fabs(deta[1])<0.000001 && fabs(deta[2])<0.000001 && \
fabs(deta[3])<2.90888208656e-5 && fabs(deta[4])<2.90888208656e-5 && \
fabs(deta[5])<2.90888208656e-5);
return ret;
}
void CResection::Iterator()
{
double phi omega kappa Xs Ys Zs;
phi = omega = kappa =0.0;
Xs = Ys = Zs = 0.0;
for (int k=0;k {
sd[k].x /= 1000.0;
sd[k].y /= 1000.0;
Xs += sd[k].X;
Ys += sd[k].Y;
}
Xs /= dotNum;
Ys /= dotNum;
f = f / 1000.0;
Zs =m*f;
// cout< // cout <<“Xs: “< // cout <<“phi: “<
//声明并初始化六元素改正数矩阵
double deta[6] = {111111};
double x0(0);
double y0(0);//内方位元素
double *X0 *Y0 *Z0;
X0 = new double[dotNum];
Y0 = new double[dotNum];
Z0 = new double[dotNum];
memset(X00dotNum*sizeof(double));
memset(Y00dotNum*sizeof(double));
memset(Z00dotNum*sizeof(double));
double A[2*6] = {0.0};
double AT[6*2] = {0.0};
double Buf1[36] = {0.0};
double Buf2[36] = {0.0};//ATA累加
double Buf3[6] = {0.0};
double Buf4[6] = {0.0};//ATL累加
double Buf5[8*6] = {0.0};//存储8×6的A矩阵,没办法
double Buf6[8*1] = {0.0};//存储8×1的L矩阵,同上
double V[8*1] = {0.0};
double ATA[36] = {0.0};
double ATL[6] = {0.0};
double L[2] = {0.0};
int iCount = 0;//迭代次数
// cout << “开始迭代计算...“< while(!CheckPrecision(deta))
{
// cout <
if (iCount == MAXITERATION)
{
// cout <<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9236 2012-03-02 10:20 xnrg.net\空间后方交会的3种实现形式\CResection\CResection.cpp
文件 4532 2010-10-26 10:49 xnrg.net\空间后方交会的3种实现形式\CResection\CResection.dsp
文件 543 2010-10-26 09:49 xnrg.net\空间后方交会的3种实现形式\CResection\CResection.dsw
文件 196608 2010-10-27 01:00 xnrg.net\空间后方交会的3种实现形式\CResection\CResection.exe
文件 901 2010-10-27 00:20 xnrg.net\空间后方交会的3种实现形式\CResection\CResection.h
文件 2755 2010-10-03 16:38 xnrg.net\空间后方交会的3种实现形式\CResection\MatrixOperation.h
文件 894 2010-11-02 21:57 xnrg.net\空间后方交会的3种实现形式\CResection\MatrixOperation.rar
文件 392 2012-03-02 10:18 xnrg.net\空间后方交会的3种实现形式\CResection\result.txt
文件 244 2010-10-01 10:00 xnrg.net\空间后方交会的3种实现形式\CResection\sourcedata.txt
文件 332 2012-03-02 10:20 xnrg.net\空间后方交会的3种实现形式\CResection\test.cpp
文件 9199 2010-10-27 00:58 xnrg.net\空间后方交会的3种实现形式\CResection_dll\CResection.cpp
文件 59 2010-10-27 22:22 xnrg.net\空间后方交会的3种实现形式\CResection_dll\CResection.def
文件 221184 2010-10-27 22:37 xnrg.net\空间后方交会的3种实现形式\CResection_dll\CResection.dll
文件 4240 2010-10-27 16:52 xnrg.net\空间后方交会的3种实现形式\CResection_dll\CResection.dsp
文件 545 2010-10-27 16:52 xnrg.net\空间后方交会的3种实现形式\CResection_dll\CResection.dsw
文件 926 2010-10-27 21:52 xnrg.net\空间后方交会的3种实现形式\CResection_dll\CResection.h
文件 2755 2010-10-03 16:38 xnrg.net\空间后方交会的3种实现形式\CResection_dll\MatrixOperation.h
文件 2755 2010-10-03 16:38 xnrg.net\空间后方交会的3种实现形式\Resection\MatrixOperation.h
文件 4395 2010-10-01 00:50 xnrg.net\空间后方交会的3种实现形式\Resection\Resection.dsp
文件 543 2010-10-01 00:50 xnrg.net\空间后方交会的3种实现形式\Resection\Resection.dsw
文件 244 2010-10-01 10:00 xnrg.net\空间后方交会的3种实现形式\Resection\sourcedata.txt
文件 10239 2012-03-02 10:20 xnrg.net\空间后方交会的3种实现形式\Resection\SpaceResection.cpp
文件 45 2010-10-01 00:40 xnrg.net\空间后方交会的3种实现形式\Resection\Test.cpp
文件 123233 2010-10-04 00:18 xnrg.net\空间后方交会的3种实现形式\Resection\单像空间后方交会.rar
文件 221184 2010-10-27 22:37 xnrg.net\空间后方交会的3种实现形式\testdll\CResection.dll
文件 924 2010-10-27 23:10 xnrg.net\空间后方交会的3种实现形式\testdll\CResection.h
文件 4488 2010-10-27 22:37 xnrg.net\空间后方交会的3种实现形式\testdll\CResection.lib
文件 1214 2010-10-27 22:52 xnrg.net\空间后方交会的3种实现形式\testdll\ReadMe.txt
文件 294 2010-10-27 22:52 xnrg.net\空间后方交会的3种实现形式\testdll\StdAfx.cpp
文件 667 2010-10-27 22:52 xnrg.net\空间后方交会的3种实现形式\testdll\StdAfx.h
............此处省略22个文件信息
相关资源
- 层次聚类算法C++
- BOOTH算法C++实现
- VS2010 C++窗口应用程序窗口之间传递参
- C++项目-图书管理系统
- 马石安编写的VC++程序设计与应用程序
- mfc获取mac地址的小程序
- 基于定步长四阶龙格库塔法的C++弹道
- 电梯仿真.zip
- 循环赛日程表,分治法n=2K,n为任意数
- GPS单点定位完整代码txt版C++,还有r
- 迷宫的生成与自动寻路
- libstdc++.so.6.0.22
- 基于原始套接字实现的PING功能代码
- 流式套接字定长变长接收回射实验报
- C++简易聊天程序C++简易聊天程序
- AES 加解密c++
- 自己用C++实现的RC4算法
- C++实现的BP神经网络算法实现奇偶检验
- Linux环境下的文件安全传输(C/C++)
- SHA-1算法实现源代码
- 本例程采用VC++ 实现JPG格式图片的打开
- c++高仿QQ截图
- 银行家算法模拟实现C++版
- 道格拉斯压缩算法C++实现
- Visual C++开发GIS系统第2版书中代码
- 航空订票管理系统 机场订票管理系统
- moravec算子c++代码
- FCFS和SJF调度算法C++
- FTP服务器C++代码实现
- C++ jpeg图像编码与解码
评论
共有 条评论