资源简介

布尔沙模型为常用的三维坐标转换模型,算法简单且容易实现。其主要是利用泰勒级数展开的方法将模型线性化,然后解算坐标转换的旋转和平移参数,最后可以 通过七个参数求解出在目的坐标系下坐标

资源截图

代码片段和文件信息

// CoordTra.cpp : implementation file
//

#include “stdafx.h“
#include “GPSCoord.h“
#include “CoordTra.h“

#include 
#include “Matrix.h“
#include “math.h“
#define PI 3.1415926535897932384626433 



#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCoordTra dialog

using namespace std;
CCoordTra::CCoordTra(CWnd* pParent /*=NULL*/)
: CDialog(CCoordTra::IDD pParent)
{
//{{AFX_DATA_INIT(CCoordTra)

m_Py = 0;
m_Px = 0;
m_Pz = 0;
m_Xx = 0;
m_Xy = 0;
m_Xz = 0;
m_ChiDu = 0;
m_num = 0;
Count2=4;
f_coord.x =0;
f_coord.y =0;
f_coord.z =0;
n_coord.x =0;
n_coord.y =0;
n_coord.z =0;




//}}AFX_DATA_INIT
}


void CCoordTra::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCoordTra)
DDX_Text(pDX IDC_FCOORD_X f_coord.x);
DDX_Text(pDX IDC_FCOORD_Y f_coord.y);
DDX_Text(pDX IDC_FCOORD_Z f_coord.z);
DDX_Text(pDX IDC_NCOORD_X n_coord.x);
DDX_Text(pDX IDC_NCOORD_Y n_coord.y);
DDX_Text(pDX IDC_NCOORD_Z n_coord.z);
DDX_Text(pDX IDC_NUM m_num);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCoordTra CDialog)
//{{AFX_MSG_MAP(CCoordTra)
ON_BN_CLICKED(IDC_TRANSFORM OnTransform)
ON_BN_CLICKED(IDC_READ OnRead)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCoordTra message handlers

void CCoordTra::OnTransform() 
{
// TODO: Add your control notification handler code here
UpdateData();

n_coord=tracoord(f_coord);


UpdateData(FALSE);



}
coord CCoordTra::tracoord(coord p_coord)//坐标转换函数
{
coord q_coord;
q_coord.x=m_Px+p_coord.x*(1+m_ChiDu)+m_Xz*p_coord.y-m_Xy*p_coord.z;
q_coord.y=m_Py+p_coord.y*(1+m_ChiDu)-m_Xz*p_coord.x+m_Xx*p_coord.z;
q_coord.z=m_Pz+p_coord.z*(1+m_ChiDu)+m_Xy*p_coord.x-m_Xx*p_coord.y;

return q_coord;
}


void CCoordTra::OnRead() 
{
// TODO: Add your control notification handler code here
    UpdateData();
    Count2=m_num;
coord *result;
result=new coord[Count2];


date=new coord[Count2];
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrtitle=“输入需要转换的点坐标“;
fileDlg.m_ofn.lpstrFilter=“Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0“;

int i;
if(IDOK==fileDlg.DoModal())
{
CString filefullname=fileDlg.GetPathName();
ifstream file(filefullname);
for(i=0;i {
file>>date[i].x;
file>>date[i].y;
file>>date[i].z;
result[i]=tracoord(date[i]);

}
}//读取文件并计算新坐标

MessageBox(“转换成功,请保存!“);

CFileDialog fileDlg1(FALSE);
fileDlg1.m_ofn.lpstrtitle=“保存对话框“;
fileDlg1.m_ofn.lpstrFilter=“Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0“;
    fileDlg1.m_ofn.lpstrDefExt=“txt“;
if(IDOK==fileDlg1.DoModal())
{
CString filefullname=fileDlg1.GetPathName();
ofstream file(filefullname);
Mess

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-11-03 10:32  GPSCoord\
     文件        3377  2015-08-29 11:51  GPSCoord\CoordTra.cpp
     文件        1476  2010-11-27 17:45  GPSCoord\CoordTra.h
     目录           0  2015-11-03 10:30  GPSCoord\Debug\
     文件        6202  2015-11-03 10:30  GPSCoord\Debug\cl.command.1.tlog
     文件       46314  2015-11-03 10:30  GPSCoord\Debug\CL.read.1.tlog
     文件        3508  2015-11-03 10:30  GPSCoord\Debug\CL.write.1.tlog
     文件      218690  2015-08-29 11:51  GPSCoord\Debug\CoordTra.obj
     文件      182272  2015-11-03 10:30  GPSCoord\Debug\GPSCoord.exe
     文件         667  2015-08-29 11:51  GPSCoord\Debug\GPSCoord.exe.embed.manifest
     文件         732  2015-08-29 11:51  GPSCoord\Debug\GPSCoord.exe.embed.manifest.res
     文件         381  2015-11-03 10:30  GPSCoord\Debug\GPSCoord.exe.intermediate.manifest
     文件     2040220  2015-11-03 10:30  GPSCoord\Debug\GPSCoord.ilk
     文件          59  2015-11-03 10:30  GPSCoord\Debug\GPSCoord.lastbuildstate
     文件        3232  2015-11-03 10:30  GPSCoord\Debug\GPSCoord.log
     文件       40339  2015-08-29 11:36  GPSCoord\Debug\GPSCoord.obj
     文件    20381696  2015-08-29 11:36  GPSCoord\Debug\GPSCoord.pch
     文件     4606976  2015-11-03 10:30  GPSCoord\Debug\GPSCoord.pdb
     文件       10252  2015-08-29 11:51  GPSCoord\Debug\GPSCoord.res
     文件         707  2015-08-29 11:36  GPSCoord\Debug\GPSCoord.vcxprojResolveAssemblyReference.cache
     文件           0  2015-08-29 11:36  GPSCoord\Debug\GPSCoord.write.1.tlog
     文件       51320  2015-08-29 11:36  GPSCoord\Debug\GPSCoordDoc.obj
     文件       35789  2015-08-29 11:36  GPSCoord\Debug\GPSCoordView.obj
     文件         212  2015-08-29 11:51  GPSCoord\Debug\GPSCoord_manifest.rc
     文件           2  2015-11-03 10:30  GPSCoord\Debug\link-cvtres.read.1.tlog
     文件           2  2015-11-03 10:30  GPSCoord\Debug\link-cvtres.write.1.tlog
     文件        3980  2015-11-03 10:30  GPSCoord\Debug\link.command.1.tlog
     文件       10864  2015-11-03 10:30  GPSCoord\Debug\link.read.1.tlog
     文件        1552  2015-11-03 10:30  GPSCoord\Debug\link.write.1.tlog
     文件       32114  2015-08-29 11:36  GPSCoord\Debug\MainFrm.obj
     文件         720  2015-11-03 10:30  GPSCoord\Debug\mt.command.1.tlog
............此处省略61个文件信息

评论

共有 条评论