什么算法可以让我模拟行星物理?

Gai*_*ius 28 algorithm simulation physics astronomy

我有兴趣做一个"太阳系"模拟器,它可以让我模拟行星和恒星的旋转和重力.

我想能够说,模拟我们的太阳系,并以不同的速度模拟它(即,观察地球和其他行星在太阳,几年等周围绕太阳旋转).我希望能够添加行星并改变行星质量等,以了解它将如何影响系统.

有没有人有任何资源可以指出我正确的方向来编写这种模拟器?

是否有为此目的设计的现有物理引擎?

Ste*_*ini 9

这一切都在这里,并在一般情况下,琼·米斯写的一切.

替代文字


Dav*_*nco 8

你需要了解和理解牛顿万有引力定律开普勒行星运动定律.这两个很简单,我相信你已经听过他们,如果不是在高中学习的话.最后,如果您希望模拟器尽可能准确,您应该熟悉n-Body问题.

你应该开始简单.尝试制作一个围绕它的Sun物体和Earth物体.这应该会给你一个非常可靠的开始,并且很容易从那里扩展.行星物体看起来像:

Class Planet {
  float x;
  float y;
  float z; // If you want to work in 3D
  double velocity;
  int mass;
}
Run Code Online (Sandbox Code Playgroud)

记住这一点F = MA,剩下的只是无聊的数学:P

  • Yu可能想要考虑极坐标.在轨道力学方面,它们通常更容易. (3认同)

Ade*_*ler 6

这是关于N体问题的一个很好的教程.

http://www.artcompsci.org/#msa

它是用Ruby编写的,但很容易映射到其他语言等.它涵盖了一些常见的集成方法; 前向欧拉,越级和厄米特.