6

我有兴趣为我们的太阳系构建一个 3D 模型以供网络使用(可能使用 AS3 和 papervision),并且一直在研究如何对行星位置进行编码。我的想法是从 NASA 下载已经计算好的位置,因为我自己计算位置似乎过于复杂。我不确定是否应该使用以太阳为中心的编码或以地球为中心的编码。

我想知道有没有人有这方面的经验。哪种方法会更好?NASA JPL 网站似乎将我们太阳系中所有主要天体的位置都定位为以地球为中心。不过,当将航海者和火星着陆器任务添加到模型中时,我可以看到这稍后会成为一个问题?

非常欢迎任何反馈、评论和链接。

编辑:我有一个使用日心坐标的粗略模型运行,但我无法找到这种格式的所有行星的坐标。

更新:

我没有太多细节可以提供,因为我真的不知道我在做什么(从空间的角度来看)。我想掌握 3D 编程,并对空间感兴趣。我的想法是,我将首先制作一个粗略的太阳系模拟器,其中包含所有行星及其轨道器(起初可能不包括卫星)。也许包括一个新闻聚合器和一些新闻/资源的链接等等。总的想法是让人们点击并为去月球和火星感到超级兴奋(首先)。

从长远来看,我希望能够添加卫星和月球任务(及时回溯到 70 年代并查看月球任务)。

所以要回答 Arrieta 的问题,这个想法不是计算日食,而是建立一个易于接近的交互式空间探索器,并在途中学习一些 3D 和空间相关的东西。

4

4 回答 4

4

很高兴您想构建自己的模拟器,但取决于您想要做什么,这可能不是一件容易的事。最简单的方法如下:

  1. 下载 JPL-DE405 星历表和检索行星位置的子程序(wrt 太阳系重心)。
  2. 请求时间跨度,计算位置,并以视觉上吸引人的方式将它们显示到屏幕上
  3. 完毕

现在,你为什么要这样做?如果你想查看行星的轨道,就是这样。你完成了。如果您想计算几何事件(如日食、视线或照明),那么您将处于完全不同的球赛中。那是航天学,并不简单。

请更具体。您对“地心”或“日心”坐标所做的区分实际上并没有什么大的困难。如果您拥有日心坐标系中的所有状态,则可以通过简单的矢量减法计算地心坐标系。那不是问题!问题还有一千多个,但您需要具体说明,以便我们提供更多指导。

JPL 几十年来一直提供高质量的星历表,我们拥有一支由优秀人才组成的完整团队。这是最困难的事情之一!

同样,提供更多详细信息或查看其他信息来源。

请谷歌“太阳系模拟器”(在这里完成,在 JPL),看看它是否满足您的需求。

干杯。

于 2010-01-15T18:49:07.497 回答
2

可能值得您查看ASCOM 平台(我们还有一个名为ASCOM Answers的堆栈交换站点)。

ASCOM 平台有几个有用的库来做这种事情。

  • USNO NOVAS(海军天文台矢量天体测量)
  • 开普勒轨道引擎

USNO/NOVAS 的东西最初是用 C 语言编写的,我们将其封装在 .NET 中,以便在 C# 和 VB 中使用。

作为一个额外的好处(实际上这是 ASCOM 存在的理由),该平台使您可以轻松控制望远镜之类的东西,微软的万维网望远镜正是为此目的使用它。我可能是对您的模型的一个有趣的扩展,以便能够将望远镜指向事物。

于 2010-01-20T06:12:37.797 回答
1

我可能会从日心坐标开始(嗯,我之前做过一段时间),然后让一些行星启动并运行。但迟早你会想要编写一个日心到地心坐标转换例程,以及它的逆向例程。对于某些物体,例如人造卫星,地心坐标将更容易处理。

于 2010-01-13T13:32:59.307 回答
0

You can use the astro-phys api to get a JSON formatted state vector for all the planets. It calculates them using JPL's de406 so it's pretty accurate and uses the solar system barycenter.

Although, if you know where the sun is relative to the earth and you're in a geocentric model, you can subtract the position of the sun from all of the bodies (including earth) to be heliocentric.

于 2012-07-26T14:41:26.120 回答