gpt4 book ai didi

javascript - 如何实现持久的、变化的时间周期

转载 作者:行者123 更新时间:2023-12-03 11:42:06 26 4
gpt4 key购买 nike

我正在程序上生成二维太阳系,并且我希望行星具有变化的、持久的轨道。我一直在试图弄清楚如何计算在任何给定时间相对于其绕轨道运行的物体的当前 Angular ,这对于每个人来说都应该是相同的,无论他们的本地时间如何。如果我使用种子 Math.random 来计算这些生成的变量,如何完成?

最佳答案

  1. 根据开普勒定律实现太阳系模拟

    这在3D中很容易,在2D中更容易(没有倾向)看这里

    只需使用一些全局同步时间作为参数即可。我的意思是所有玩家/观察者都应该彼此同步时间)

  2. 对轨道元素参数使用种子伪随机

    喜欢a,e,i,o,O粗略地为它们添加一些范围,例如:

    • a - 长半轴应在 <0.01,200> [AU] 范围内所以

      a=(0.01+(200.0-0.01)*Random())*AU;`

      其中AU是天文单位常数,Random给出伪随机数 <0.0,1.0>

    • e 偏心率应在 <0.00,1.00> [-] 范围内

    • i,o,O 是 Angular ,所以 <0,2.0*PI> [rad]

    同样,您可以添加所有支持的轮换周期。请注意,围绕中心物体的平均轨道周期取决于其与中心物体的距离和质量比(对于游戏,您可以忽略这一点)。还有从太阳系观测到的行星质量/大小/距离比的经验方程。

[注释]


2D中没有倾斜度,因此您可以省略倾斜度和节点 Angular ,从而仅保留绕轴 Angular 。
所有旋转周期在某个定义的时间(称为纪元)中也有起始 Angular 。
所有参数都可以及时改变(但是对于游戏来说这并不相关,除非你想测量其中的东西......)

关于javascript - 如何实现持久的、变化的时间周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26232120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com