資源簡介
NASA用于計算軌道的程序 c++版,可以很容易的計算任何時刻衛星的位置等參數

代碼片段和文件信息
//
//?cEci.cpp
//
//?Copyright?(c)?2002-2003?Michael?F.?Henry
//
#include?“stdafx.h“
#include?“cEci.h“
#include?“globals.h“
//////////////////////////////////////////////////////////////////////
//?cEci?Class
//////////////////////////////////////////////////////////////////////
cEci::cEci(const?cVector?&pos?
???????????const?cVector?&vel?
???????????const?cJulian?&date
???????????bool??IsAeUnits?/*?=?true?*/)
{
???m_pos??????=?pos;
???m_vel??????=?vel;
???m_date?????=?date;
???m_VecUnits?=?(IsAeUnits???UNITS_AE?:?UNITS_NONE);
}
//////////////////////////////////////////////////////////////////////
//?cEci(cCoordGeo&?cJulian&)
//?Calculate?the?ECI?coordinates?of?the?location?“geo“?at?time?“date“.
//?Assumes?geo?coordinates?are?km-based.
//?Assumes?the?earth?is?an?oblate?spheroid?as?defined?in?WGS?‘72.
//?Reference:?The?1992?Astronomical?Almanac?page?K11
//?Reference:?www.celestrak.com?(Dr.?TS?Kelso)
cEci::cEci(const?cCoordGeo?&geo?const?cJulian?&date)
{
???m_VecUnits?=?UNITS_KM;
???double?mfactor?=?TWOPI?*?(OMEGA_E?/?SEC_PER_DAY);
???double?lat?=?geo.m_Lat;
???double?lon?=?geo.m_Lon;
???double?alt?=?geo.m_Alt;
???//?Calculate?Local?Mean?Sidereal?Time?(theta)
???double?theta?=?date.toLMST(lon);
???double?c?=?1.0?/?sqrt(1.0?+?F?*?(F?-?2.0)?*?sqr(sin(lat)));
???double?s?=?sqr(1.0?-?F)?*?c;
???double?achcp?=?(XKMPER_WGS72?*?c?+?alt)?*?cos(lat);
???m_date?=?date;
???m_pos.m_x?=?achcp?*?cos(theta);???????????????//?km
???m_pos.m_y?=?achcp?*?sin(theta);???????????????//?km
???m_pos.m_z?=?(XKMPER_WGS72?*?s?+?alt)?*?sin(lat);???//?km
???m_pos.m_w?=?sqrt(sqr(m_pos.m_x)?+?
????????????????????sqr(m_pos.m_y)?+?
????????????????????sqr(m_pos.m_z));????????????//?range?km
???m_vel.m_x?=?-mfactor?*?m_pos.m_y;????????????//?km?/?sec
???m_vel.m_y?=??mfactor?*?m_pos.m_x;
???m_vel.m_z?=?0.0;
???m_vel.m_w?=?sqrt(sqr(m_vel.m_x)?+????????????//?range?rate?km/sec^2
????????????????????sqr(m_vel.m_y));
}
//////////////////////////////////////////////////////////////////////////////
//?toGeo()
//?Return?the?corresponding?geodetic?position?(based?on?the?current?ECI
//?coordinates/Julian?date).
//?Assumes?the?earth?is?an?oblate?spheroid?as?defined?in?WGS?‘72.
//?Side?effects:?Converts?the?position?and?velocity?vectors?to?km-based?units.
//?Reference:?The?1992?Astronomical?Almanac?page?K12.?
//?Reference:?www.celestrak.com?(Dr.?TS?Kelso)
cCoordGeo?cEci::toGeo()
{
???ae2km();?//?Vectors?must?be?in?kilometer-based?units
???double?theta?=?AcTan(m_pos.m_y?m_pos.m_x);
???double?lon???=?fmod(theta?-?m_date.toGMST()?TWOPI);
???
???if?(lon?0.0)?
??????lon?+=?TWOPI;??//?“wrap“?negative?modulo
???double?r???=?sqrt(sqr(m_pos.m_x)?+?sqr(m_pos.m_y));
???double?e2??=?F?*?(2.0?-?F);
???double?lat?=?AcTan(m_pos.m_z?r);
???const?double?delta?=?1.0e-07;
???double?phi;
???double?c;
???do???
???{
??????phi?=?lat;
??????c???=?1.0?/?sqrt(1.0?-?e2?*?sqr(sin(phi)));
??????lat?=?AcT
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3642??2005-10-16?19:29??SxP4Test\cEci.cpp
?????文件???????1344??2005-09-29?21:56??SxP4Test\cEci.h
?????文件???????7381??2005-10-06?21:32??SxP4Test\cJulian.cpp
?????文件???????2467??2005-10-06?21:33??SxP4Test\cJulian.h
?????文件???????9469??2005-10-06?21:14??SxP4Test\cNoradba
?????文件???????1647??2005-09-29?21:56??SxP4Test\cNoradba
?????文件??????24817??2005-10-06?21:17??SxP4Test\cNoradSDP4.cpp
?????文件???????3238??2005-09-29?21:56??SxP4Test\cNoradSDP4.h
?????文件???????4035??2005-10-06?21:18??SxP4Test\cNoradSGP4.cpp
?????文件????????690??2005-09-29?21:56??SxP4Test\cNoradSGP4.h
?????文件????????672??2005-09-29?21:56??SxP4Test\coord.cpp
?????文件???????1131??2005-09-29?21:56??SxP4Test\coord.h
?????文件???????4506??2005-10-06?22:23??SxP4Test\cOrbit.cpp
?????文件???????3207??2005-10-15?14:30??SxP4Test\cOrbit.h
?????文件???????7344??2008-10-29?14:21??SxP4Test\cSite.cpp
?????文件???????1102??2008-10-29?14:19??SxP4Test\cSite.h
?????文件??????12359??2005-09-29?21:56??SxP4Test\cTLE.cpp
?????文件???????5241??2005-09-29?21:56??SxP4Test\cTLE.h
?????文件???????1767??2005-09-29?21:56??SxP4Test\cVector.cpp
?????文件????????761??2005-09-29?21:56??SxP4Test\cVector.h
?????文件??????37589??2008-10-29?11:45??SxP4Test\Debug\cEci.obj
?????文件??????????0??2008-10-29?11:45??SxP4Test\Debug\cEci.sbr
?????文件??????34372??2008-10-29?11:45??SxP4Test\Debug\cJulian.obj
?????文件??????????0??2008-10-29?11:45??SxP4Test\Debug\cJulian.sbr
?????文件?????129882??2008-10-29?11:45??SxP4Test\Debug\cNoradba
?????文件??????????0??2008-10-29?11:45??SxP4Test\Debug\cNoradba
?????文件??????81225??2008-10-29?11:45??SxP4Test\Debug\cNoradSDP4.obj
?????文件??????????0??2008-10-29?11:45??SxP4Test\Debug\cNoradSDP4.sbr
?????文件??????32367??2008-10-29?11:45??SxP4Test\Debug\cNoradSGP4.obj
?????文件??????????0??2008-10-29?11:45??SxP4Test\Debug\cNoradSGP4.sbr
............此處省略42個文件信息
- 上一篇:合泰單片機C語言教程
- 下一篇:遙感圖像融合程序 C++
評論
共有 條評論