Javascript 如何实现持久的、变化的时间周期
我正在按程序生成2D太阳系,我希望行星有不同的、持续的轨道。我一直想弄清楚如何计算出在任何给定时间相对于物体的当前角度,这对每个人来说都是一样的,不管他们的当地时间是什么。如果我使用种子Javascript 如何实现持久的、变化的时间周期,javascript,math,simulation,astronomy,procedural-generation,Javascript,Math,Simulation,Astronomy,Procedural Generation,我正在按程序生成2D太阳系,我希望行星有不同的、持续的轨道。我一直想弄清楚如何计算出在任何给定时间相对于物体的当前角度,这对每个人来说都是一样的,不管他们的当地时间是什么。如果我使用种子Math.random来计算这些生成的变量,那该怎么做呢 根据开普勒定律模拟太阳系 这在3D中很容易,在2D中更容易(无倾斜)看这里 只需使用一些全局同步的时间作为参数。我的意思是,所有玩家/观察员之间的时间应该同步) 对轨道元素参数使用种子伪随机数 像粗糙的a、e、i、o、o一样,为它们添加一些范围,例
Math.random
来计算这些生成的变量,那该怎么做呢
a、e、i、o、o
一样,为它们添加一些范围,例如:
- a-主半轴应在范围内
so[AU]
其中,AU是天文单位常数,a=(0.01+(200.0-0.01)*Random())*AU;`
给出伪随机数Random
- e偏心率应在范围内
[-]
- i,o,o是角度,因此
[rad]
在2D中,没有倾角,因此可以忽略倾角和节点角度,以便只保留周向角。
所有的旋转周期也有一些定义的开始角,称为历元。
所有的参数都可以随时间变化(但对于游戏来说,除非你想测量其中的东西,否则这是不相关的…)