半正确行星系统的程序生成


14

因此,您可以通过Google找到大量资源,也可以在此处使用有关如何程序生成整个星系的搜索资源。但是我找不到关于如何遵循这些标准的行星系统的任何有用资源:

该系统不必精确地模拟轨道,但应接近合理的轨道。我不在乎任何关心系统在20万年后的外观的仿真,轨道可能是坚如磐石。我面临的主要问题是如何随机生成一个看似合理的系统。当您的系统具有双星系统时,这变得特别有趣。

只是随机地创建轨道并不能构成一个合理的系统,最终您将得到明显无效的轨道。是的,我知道N体问题:),但这至少对我没有帮助,无法解决生成合理的系统程序的问题?

我认为您可以在行星的轨道上随机产生行星并给它们一个质量,然后使用N体数学来计算它们是否有效,如果不重新开始,并随机生成新的轨道,直到获得与之匹配的东西,但这将是非常低效的。


您可以先生成质量,甚至生成密度和直径(这可以在某些范围内随机发生),然后根据一些公式计算所需的轨道半径和速度。如果在这个轨道半径上已经有一个行星,请再次产生。这将大大减少多余的世代,并且看起来相当合理,如果您稍微稍微倾斜一下轨道,则更为合理。但是,这不会考虑行星际引力相互作用,但是当您要求一个非常基本的表示形式时,这可能就足够了。
cozmic '17

4
为了回答这个问题,您需要成为一名天文学家,而不是游戏开发人员。对于天文学,这可能更是一个问题。
菲利普

为行星的生存制定一套规则。为一组可行的行星创建一套规则。检查那些规则。做完了
桅杆

这不能完全回答您的问题,但是您可能会发现我的工作很有帮助:quotientring.com Cosmos-2规则集中
MackTuesday

Answers:


11

为了创建一个合理的太阳系,请确保每个轨道都在母体的影响范围内,而不是在另一个球体的山体范围或罗氏极限范围内。

势力范围是围绕着行星,卫星稳定可预期的最大半径。

洛希极限是最小轨道半径一个天体附近可以有另一种。当它在较低的轨道上时,它会破裂并成环。

当您要防止在同一物体周围创建两颗具有非常近的轨道的卫星时,山球非常重要。它是行星“占据”的最小和最大轨道半径之间的范围。

可以使用链接的Wikipedia文章中的公式根据质量和轨道半径来计算所有这三个值。

因此,我将尝试以下算法:

  1. 创建具有随机轨道半径和质量的随机数量的天体。半径和质量应为对数刻度。
  2. 从最大到最小,计算每个行星的山球。更大的行星的山球中质量较小的行星将成为该行星的卫星。以0和父级影响范围之间的对数分布随机生成围绕父级的月球轨道半径。
  3. 对所有月球系统执行第2步,以解决月亮的山球冲突。月球能否拥有一颗稳定的卫星是天文学界争论的问题(在我们的太阳系中没有一个已知的例子)。当您不需要任何月亮月亮时,只需删除较小的月亮或将其放在其他随机轨道上即可。
  4. 检查其父对象周围每个对象的罗氏极限。当其低于roche限制时,请将其转换为环(或将其删除)。

这包括单星系统,但不包括双星系统。双星系统有两个绕共同重心运行的恒星。行星可以绕恒星之一绕行(S型轨道),也可以绕很宽的轨道绕重心(P型轨道)。

如果您想要一个双星系统,我建议首先生成第二颗恒星作为围绕主颗恒星的另一颗卫星。第二颗恒星的高球范围内的任何事物都围绕第二颗恒星运行,半径小于第二颗恒星的球面范围内的任何事物都围绕第一颗恒星运行。计算重心,使两个恒星都与它们的卫星一起绕轨道运行。任何比山球更大的ob角,都会绕着两颗恒星的重心(P型轨道)旋转。

只有当第二个以上的恒星比另一个较小时,三进制和较大的n元恒星系统才稳定。这些额外的恒星应该像其他行星一样处理。


我将在此答案中添加开普勒的《行星运动第三定律》The square of the orbital period of a planet is directly proportional to the cube of the semi-major axis of its orbit.
Draco18s不再信任SE

15

简化为2体物理学。N体物理学通常是混乱的,您无法将它们模拟到稳定的轨道。

单颗星

对于只有一颗恒星的系统,我将忽略N体问题,而仅使一组行星以与太阳几何距离递增的方式粗略分布。也许您可能有一条规则,即如果生成了一个特别大的行星,那么距离太近的任何邻居都会变得不稳定并形成小行星带

靠近恒星的行星不一定像我们的太阳系那样是岩石

行星的质量,距离和轨道速度是相互关联的 -当您随机选择值时,请使其中一个(可能是轨道速度)取决于其他两个值。

双星

在检查Wikipedia之前,我之前对居居双星一无所知,因此请继续阅读Habitability_of_binary_star_systems,了解其中的一些数字。

  1. 在非环绕行星中(该行星仅在双星系统中绕着一颗恒星运转),如果一颗行星到其初生恒星的距离超过另一颗恒星最接近的恒星的五分之一,则无法保证其轨道稳定性。这意味着,如果A和B星形成距离为AB的双星系统,则可以在A或B周围以小于0.2 * AB的距离拥有稳定的行星轨道。对于这些系统,我将再次使用2体物理作为近似。

  2. 在外行星系统中,只要行星与二元对之间的距离是彼此的2-4倍,就可以再次将其视为2体问题,其中行星围绕两个质心运动星星

  3. 您还可以使行星绕二元系统的L4和L5拉格朗日点运行。我只在科幻环境中看到过有关此问题的讨论-我认为只有小行星大小的天体占据我们太阳系中行星的拉格朗日点,尽管它们对航天器很有用。从技术上讲,要使这些点稳定一颗星必须比另一颗大得多,但是要由您决定要多少才能让真实的物理影响游戏设置。


1
三体系统具有已知的周期解,可以对其进行硬编码和随机选择en.wikipedia.org/wiki/Three-body_problem#Periodic_solutions
Nakilon

1
@Nakilon这个问题是在问合理的行星恒星系统。具有不可忽略的质量的三体问题的任何已知解决方案实际上都是不可能自然发生的。但是,它们可能会出现在游戏中,游戏中有足够先进的外星人,他们喜欢做航天工程
菲利普

0

这是一篇很长的评论,以补充现有的答案。

如果有足够的时间,行星系统几乎会变成平面。您也可以通过从一开始就将其设置为平面来简化仿真。然后,至少在使用Jimmy建议的2体简化时,您可以用Binet方程完成其余部分。如果您忽略广义相对论,则解决方案是解析性的。如果不这样做,则需要Runge-Kutta之类的东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.