牛顿重力模拟

2024-04-29 02:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个2D游戏,它以重力为主要机制。在

我制作了一些游戏引擎,但我遇到的问题是决定如何增加每个质量的X和Y速度。在

假设有圆A和圆B,每个都有一个位置,一个速度,和一个质量。每一个应该被拉向另一个相当现实,模拟牛顿引力。我要如何做到这一点?在

是的,我对计量单位很不明确。以后我可以尝试改变变量来适应公式。在


Tags: 引擎游戏质量引力速度机制重力公式
2条回答

假设你有一个游戏中量化的时间单位,时钟的“嘀嗒”声,如果你愿意,给每个物体一个速度向量(它每“嘀嗒”移动多少,朝哪个方向移动),并且对于每一个滴答,让其他物体根据它们的距离改变它的速度矢量(对它施加一个力,除以它的质量)。然后,每当你的时钟滴答作响时,物体都会根据它们的速度矢量运动,然后它们的速度矢量会根据作用在它们身上的净力而改变。只要你决定哪个先发生-加速还是运动-只要你的记号足够小,你就可以了。

你需要解每个物体的运动方程。它们将被写成一组耦合的一阶常微分方程。在x和y方向各写一个方程,这将给出加速度,作为两个物体之间的重力除以各自质量的函数。

你知道加速度,速度和位移之间的关系。

最后得到四个耦合的常微分方程。使用一个时间步进的解决方案推进时间-显式或隐式,你的选择。

相关问题 更多 >