⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ninetrans.cpp

📁 gps 卫星位置的计算
💻 CPP
字号:
// NineTrans.cpp : implementation file
//

#include "stdafx.h"
#include "satcoord.h"
#include "NineTrans.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CNineTrans dialog


CNineTrans::CNineTrans(CWnd* pParent /*=NULL*/)
	: CDialog(CNineTrans::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNineTrans)
	m_deltaa = 0.0;
	m_deltaalpha = 0.0;
	m_deltax = 0.0;
	m_deltay = 0.0;
	m_deltaz = 0.0;
	m_epsilonx = 0.0;
	m_epsilony = 0.0;
	m_epsilonz = 0.0;
	m_m = 0.0;
	//}}AFX_DATA_INIT
}


void CNineTrans::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNineTrans)
	DDX_Text(pDX, IDC_NINE_DELTAA, m_deltaa);
	DDX_Text(pDX, IDC_NINE_DELTAALPHA, m_deltaalpha);
	DDX_Text(pDX, IDC_NINE_DELTAX, m_deltax);
	DDX_Text(pDX, IDC_NINE_DELTAY, m_deltay);
	DDX_Text(pDX, IDC_NINE_DELTAZ, m_deltaz);
	DDX_Text(pDX, IDC_NINE_EPSILONX, m_epsilonx);
	DDX_Text(pDX, IDC_NINE_EPSILONY, m_epsilony);
	DDX_Text(pDX, IDC_NINE_EPSILONZ, m_epsilonz);
	DDX_Text(pDX, IDC_NINE_M, m_m);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNineTrans, CDialog)
	//{{AFX_MSG_MAP(CNineTrans)
	ON_BN_CLICKED(ID_Nine_Trans_wgsbj, OnNineTranswgsbj)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNineTrans message handlers

void CNineTrans::OnNineTranswgsbj() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	COMMANCOORD			ccoord;
	NINEPARAMETER		np;
	COORDINATEGEODETIC	bjgdt;
	COORDINATEPLANE		bjpla;

	char	szBuf[128];
	double	PI=3.1415926535897932384626;
	double	x[4],y[4],h[4];
	double	middleoflat;

	FILE	*fp_comman;
	fp_comman	=	fopen("comman_nine.txt","r");
	
	for(int i = 0; i < 4; i ++)
	{	
		fgets (szBuf, 128, fp_comman);
		sscanf(szBuf, "%lf %lf %lf", &ccoord.B1[i], &ccoord.L1[i], &ccoord.H1[i]);
	}
	fgets (szBuf, 128, fp_comman);
	for( i = 0; i < 4; i ++)
	{	
		fgets (szBuf, 128, fp_comman);
		sscanf(szBuf, "%lf %lf %lf", &x[i], &y[i], &h[i]);
	}
	for(i = 0; i < 4; i ++)
	{
		middleoflat	=	floor ((ccoord.L1[i] + 1.5) / 3.0) * 3.0;
		bjpla.dX	=	x[i];
		bjpla.dY	=	y[i];
		m_trans.PLANEtoBJ(bjpla,middleoflat,&bjgdt);
		ccoord.B2[i]	=	bjgdt.dLatitude;
		ccoord.L2[i]	=	bjgdt.dLongtitude;
		ccoord.H2[i]	=	h[i];
	}

	for(i = 0; i < 4; i ++)
	{	
		ccoord.B1[i]	=	ccoord.B1[i] * PI / 180.0;
		ccoord.L1[i]	=	ccoord.L1[i] * PI / 180.0;
	}
	m_trans.ninetrans(ccoord,&np);

	m_deltax	=	np.dx;
	m_deltay	=	np.dy;
	m_deltaz	=	np.dz;
	m_epsilonx	=	np.ex;
	m_epsilony	=	np.ey;
	m_epsilonz	=	np.ez;
	m_deltaa	=	np.deltaa;
	m_deltaalpha=	np.deltaalpha;
	m_m			=	np.m;
	
	UpdateData(FALSE);	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -