Gai*_*ius 28 algorithm simulation physics astronomy
我有兴趣做一个"太阳系"模拟器,它可以让我模拟行星和恒星的旋转和重力.
我想能够说,模拟我们的太阳系,并以不同的速度模拟它(即,观察地球和其他行星在太阳,几年等周围绕太阳旋转).我希望能够添加行星并改变行星质量等,以了解它将如何影响系统.
有没有人有任何资源可以指出我正确的方向来编写这种模拟器?
是否有为此目的设计的现有物理引擎?
你需要了解和理解牛顿万有引力定律和开普勒行星运动定律.这两个很简单,我相信你已经听过他们,如果不是在高中学习的话.最后,如果您希望模拟器尽可能准确,您应该熟悉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
这是关于N体问题的一个很好的教程.
http://www.artcompsci.org/#msa
它是用Ruby编写的,但很容易映射到其他语言等.它涵盖了一些常见的集成方法; 前向欧拉,越级和厄米特.