太阳能系统计算机模型
我有兴趣构建一个供网络使用的太阳系 3D 模型(可能使用 AS3 和 papervision),并且一直在研究如何对行星位置进行编码。我的想法是从 NASA 下载已经计算出的位置,因为我自己计算位置似乎过于复杂。我不确定是否应该使用以日心为中心的编码或以地球为中心的编码。
我想知道是否有人有这方面的经验。哪种方法会更好? NASA JPL 网站似乎将太阳系中所有主要天体的位置都以地球为中心。不过,当我将航行者号和火星登陆器任务添加到模型中时,我可以看到这会成为一个问题?
非常欢迎任何反馈、评论和链接。
编辑:我正在运行一个使用日心坐标的粗略模型,但我无法找到这种格式的所有行星的坐标。
更新:
我没有太多细节可以提供,因为我真的不知道我在做什么(从空间的角度来看)。我想掌握 3D 编程,并且对太空感兴趣。我的想法是,我将首先制作一个粗略的太阳系模拟器,其中包含所有行星及其轨道飞行器(可能首先不包括卫星)。也许包括新闻聚合器和一些新闻/资源的链接等。总体想法是让人们点击周围并为前往月球和火星感到超级兴奋(首先)。
从长远来看,我希望能够添加卫星和月球任务(回到 70 年代并查看月球任务)。
因此,回答 Arrieta 的问题时,我们的想法不是计算日食,而是建立一个易于接近的交互式空间探索馆,并在此过程中学习一些 3D 和空间相关的东西。
I'm interested in building a 3D model of our solar system for web use (probably with AS3 and papervision) and have been looking into how I would go about encoding the planetary positions. My idea was to download the already calculated positions from NASA as calculating the positions myself seems a but overcomplicated. I'm not sure though whether I should use a helio centric or an earth centric encoding.
I wanted to know if there are any one with any experience in this. Which approach would be better? The NASA JPL website seems to have the positions of all the major bodies in our solar system as earth centric. I can see this becoming a problem later on though when adding Voyager and Mars Lander missions to the model?
Any feedback, comments and links are very welcome.
EDIT: I have a rough model running that uses heliocentric coordinates, but I haven't been able to find the coordinates for all planets in this format.
UPDATE:
I don't have a lot of detail to provide for know because I really don't know what I'm doing (from the space point of view). I wanted to get a handle on 3D programming, and am interested in space. The idea was that I would make a rough solar system simulator with at first all the planets and their orbiters (maybe excluding satellites at first). Perhaps include a news aggregator and some links to news/resources and so on. The general idea would be to allow people to click around and get super excited about going to the moon and Mars (for a starter).
In the long run I hopefully would be able to add in satellites and the moon missions (scroll back in time to the 70's and see the moon missions).
So to answer Arrieta's question the idea was not to calculate eclipses but to build an easy to approach, interactive space exploratorium, and learn some 3D and space related stuff on the way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
很高兴您想构建自己的模拟器,但根据您想要做什么,这可能不是一件容易的事。最简单的方法如下:
,您为什么要这样做?如果你想查看行星的轨道,就这样。你完成了。如果您想计算几何事件(例如日食、视线或照明),那么您将面临完全不同的游戏。这就是航天,并不简单。
请说得更具体一些。您对“地心”或“日心”坐标的区分实际上没有什么大的困难。如果您拥有日心坐标系中的所有状态,则可以通过简单的矢量减法来计算地心坐标系。那不是问题!问题还有一千多个,但您需要具体说明,以便我们提供更多指导。
几十年来,喷气推进实验室一直在提供高质量的星历表,我们拥有一支由优秀人才组成的完整团队。这是最难做对的事情之一!
再次强调,请提供更多详细信息或查看其他信息来源。
请谷歌搜索“太阳能系统模拟器”(在 JPL 完成),看看它是否满足您的需求。
干杯。
Glad you want to build your own simulator, but depending on what you want to do it may be far from an easy task. The simplest approach is as follows:
Now, why would you want to do this? If you want to view the planet's orbits, that's it. You are done. If you want to compute geometric events (like eclipses, or line-of-sight, or ilumination) then you are in a whole different ball game. That's astronautics, and it is not simple.
Please be more specific. The distinction you make of "geocentric" or "heliocentric" coordinates really has no major difficulty involved. If you have all the states in heliocentric frame, you can compute the geocentric frame by simple vector subtraction. That's not the problem! The problems are a thousand more, but you need to be specific so we can provide more guidance.
JPL has provided high quality ephemerides for decades now, and we have a full team of brilliant people working on it. It is one of the most difficult things to get right!
Again, provide more details or check out other sources of information.
Please google "Solar System Simulator" (done here, at JPL) and see if it fulfills your needs.
Cheers.
也许值得您查看 ASCOM 平台(我们还有一个名为 ASCOM 答案)。
ASCOM 平台有几个有用的库可以完成此类任务。
USNO/NOVAS 的东西最初是用 C 编写的,我们将其包装在 .NET 中,以便于 C# 和 VB 的使用。
作为一个额外的好处(实际上这是 ASCOM 存在的理由),该平台可以让您轻松控制望远镜等东西,它被 Microsoft 的 万维望远镜正是为了这个目的。我可能是你的模型的一个有趣的扩展,能够将望远镜指向物体。
It may be worth you checking out the ASCOM Platform (we also have a stack exchange site called ASCOM Answers).
The ASCOM Platform has several useful libraries for doing this sort of thing.
The USNO/NOVAS stuff was originally written in C and we've wrapped it up in .NET for ease of use from C# and VB.
As an added bonus (actually it's the raison d’être for ASCOM), the Platform makes it easy for you to control things like telescopes, it's used by Microsoft's World Wide Telescope for exactly that purpose. I tmight be a fun extension to your model to be able to point a telescope at things.
我可能会从日心坐标开始(好吧,我不久前就这样做了),并让一些行星启动并运行。但迟早您会想要编写一个日心到地心坐标转换例程及其逆过程。对于某些天体,例如人造卫星,地心坐标会更容易处理。
I'd probably start (well, I did a while back) with heliocentric coordinates and get a few of the planets up and running. But sooner or later you'll want to write a heliocentric-to-geocentric coordinate conversion routine, and its inverse. For some bodies, such as artificial satellites the geocentric coordinates will be easier to deal with.
您可以使用 astro-phys api 获取所有行星的 JSON 格式的状态向量。它使用 JPL 的 de406 来计算它们,因此非常准确并使用太阳系重心。
不过,如果您知道太阳相对于地球的位置并且处于地心模型中,则可以从所有天体(包括地球)中减去太阳的位置,以实现日心说。
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.