二维重力模拟问题中的 RK4

发布于 2024-12-05 19:26:50 字数 402 浏览 1 评论 0原文

在 ActionScript 3.0 中,我有两个对象(一个中心红星和一个绕轨道运行的蓝色行星)。我想用 RK4 绘制轨道。我每帧运行一次模拟,并每帧绘制一次。我必须将蓝色行星在 x,y 中的位置与中心行星联系起来,这样我可能会在某个地方的转换中迷失方向。这仅适用于 1,1 象限。当蓝色星球从一个象限穿过到另一个象限时,我将调整重力矢量。

问题:如果我改变时间步长,轨道就会发生巨大变化。在小的时间步长下,轨道变成一条直线。在较大的时间步长下,轨道变得更紧。用于计算每个“K”的加速度的系数不按 dt 缩放(除了它通过先前的速度矢量)。

以下是 RK4 代码片段:

http://pastebin.com/Ee6HzBQ2

In actionscript 3.0, I have two objects (a central red star and a orbiting blue planet). I want to use RK4 to plot the orbit. I'm running the simulation once per frame, and drawing once per frame. I have to relate the position of the blue planet in x,y to the central planet so I may be getting lost in the conversion somewhere. This is just for the 1,1 quadrant. I will be adjusting the gravity vector as the blue planet crosses from quadrant to quadrant.

PROBLEM: If I alter the time step, the orbit changes drastically. At small time steps, the orbit becomes a straight line. At large time steps, the orbit becomes tighter. The cooefficients for computing the acceleration for each "K" are not being scaled by dt (except for it being passed through the previous velocity vector).

Here is the RK4 code snip:

http://pastebin.com/Ee6HzBQ2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文