如何实现持久的、变化的时间周期
How to implement persistent, varying time cycles
我正在按程序生成2D太阳系,我希望行星有不同的、持久的轨道。我一直在想如何计算出在任何给定时间相对于绕轨道运行的物体的当前角度,无论当地时间如何,每个人都应该是一样的。如果我使用种子Math.random
来计算这些生成的变量,如何做到这一点?
-
根据开普勒定律对太阳系进行模拟
这在3D中很容易,在2D(无倾斜)中更容易查看此处
- 求解开普勒方程
- C中的地球样本模拟++
只需使用一些全局同步的时间作为参数即可。我的意思是,所有玩家/观察者之间的时间都应该同步)
-
使用种子伪随机数作为轨道元素参数
像粗略的
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是角度,因此
<0,2.0*PI> [rad]
类似地,您可以添加所有支持的旋转周期。注意,围绕中心物体的平均轨道周期取决于它与中心物体的距离和质量比(对于游戏,你可以忽略这一点)。此外,还有从太阳系观测到的行星质量/大小/距离比的经验方程。
-
[注释]
2D中没有倾斜度,因此可以省略倾斜度和节角,因此只保留轴周角。
所有旋转周期也有一些定义时间的开始角,称为epoch。
所有参数都可以随时间变化(但对于游戏来说,这是不相关的,除非你想测量其中的东西…)
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- Webkit-css随持续时间变化
- JavaScript中的style.clip会随着时间的推移而变化
- jquery ui:检测输入中的首次时间变化
- 如何在时间变化时旋转图像
- 使用套接字io和angularjs处理频繁变化的时间序列数据的策略
- D3.js:计算随范围变化的时间尺度上的柱线宽度
- RequestAnimationFrame调用时间根据我的画布大小而变化
- 如何实现持久的、变化的时间周期
- 对于动态变化的时间,设置nvd3 x域范围的最佳方法是什么
- 使用javascript / jqplot可视化以小间隔变化的时间序列数据
- Angular (jquery时间选择器)无法检测到变化
- 一段时间间隔后图像的变化
- 没有用户输入的订阅反应性和出版物中不断变化的时间框架
- 网站根据一天中的时间变化
- 如何在Javascript中使页面的背景颜色在一天中的某个时间发生变化
- 一天中某个时间的颜色变化不适用于Js
- Javascript tumblr背景根据一天中的时间而变化
- 放慢背景变化持续时间与javascript