问题标签 [orbital-mechanics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Three.js中对象之间的倾斜旋转
我正在尝试像 Three.js 那样重现太阳系,但我无法让行星围绕恒星倾斜旋转:
这是一个小提琴样本,但旋转错误:http: //goo.gl/MzcwI
我尝试了这个解决方案: How to rotate a 3D object on axis three.js? 没有成功。
如果有人有线索可以帮助我,谢谢
python - 解决 ODE 的 python 时出错
我有一个大学项目,要求我们使用 ODE 和 SciPy 的 odeint 函数模拟卫星接近火星。
我设法通过将二阶 ODE 转换为两个一阶 ODE 来在 2D 中模拟它。但是我被时间限制困住了,因为我的代码使用的是 SI 单位,因此可以在几秒钟内运行,而 Python 的 linspace 限制甚至不能模拟一个完整的轨道。
我尝试将变量和常量转换为小时和公里,但现在代码不断出错。
我遵循了这个方法:
http://bulldog2.redlands.edu/facultyfolder/deweerd/tutorials/Tutorial-ODEs.pdf
代码是:
我不知道如何从 PyLab 复制/粘贴错误代码,所以我拍摄了错误的 PrintScreen:
t=linspace(0.01,24.0,100) 和 xinit=array([0.001,5251]) 的第二个错误:
如果有人对如何改进代码有任何建议,我将不胜感激。
非常感谢!
c# - 如何在 2D 中预测船舶与物体的影响范围之间的相遇
长期聆听者,第一次来电者。我正在 XNA 中制作一个小游戏,关于太空中的运输船,类似于海上的集装箱船。我需要能够在受限的 2D 环境中预测船与行星/卫星引力影响范围之间的相遇。船和行星/月球的位置,简称体,由开普勒轨道元素确定。Ship 和 Body 都围绕同一个吸引中心运行。
到目前为止,我设计的方法是首先对远点和近点(距吸引力中心最远和最近的点)进行一些初步检查,看看是否有可能相遇。在这样的检查之间,如果船舶的轨道是开放的(双曲线,我将抛物线情况近似为双曲线),它可以排除许多不可能遇到的情况。
如果这些检查确定可能发生相遇,我将确定船舶有资格发生相遇的距吸引力中心的最小和最大距离。然后我得到船舶轨道与由最小值和最大值定义的两个圆的交点。这会在飞船的轨道上产生零个、两个或四个点,定义零个、一个或两个周期,在这些点上它可能会遇到身体的球体。在这一点上,如果有零个交叉点,则整个船舶轨道可能都在相遇区,这可能是一个不常见的极端情况,但需要被覆盖。
我可以得到船将通过其轨道上的这些点的时间,给一两个时间窗口来检查相遇,但从那里我最好的解决方案是通过将时间跨度划分为步骤来搜索时间跨度,计算身体的位置那些时候,然后测试遇到。
这种方法的问题在于知道有效找到相遇的步骤的大小。及时获取 Body 的位置有点贵,所以我宁愿尽量少做,但步数太大可能会错过遭遇。
共焦圆锥形状是否有任何特性可以帮助减少搜索空间?或者是否有其他方法可以预测沿圆锥路径移动的点和沿共享焦点的椭圆移动的圆之间的相遇/碰撞。
python - Python SGP4 1.1 计算不正确的轨道
我正在使用 python SGP4 1.1 模块来计算 MEO 卫星的位置和速度。当与 STK 和 JSatTrak 进行比较时,我注意到返回的位置和速度值不正确。卫星应该有大约 6 小时的地面重复轨道,但这个程序显示的是 4:47:51 的地面重复。有什么我做错了吗?
algorithm - 查找黑盒函数的第一个根,或同一函数的任何负值
我有一个黑盒函数 f(x) 和 x 的一系列值。我需要找到 f(x) = 0 的 x 的最小值。
我知道对于 x 范围的开始,f(x) > 0,如果我有一个 f(x) < 0 的值,我可以使用 regula falsi 或类似的求根方法来尝试确定 f( x)=0。
我知道 f(x) 是连续的,并且对于所讨论的范围应该只有 0,1 或 2 个根,但它可能有一个局部最小值。
f(x) 在计算上有点昂贵,我必须经常找到这个第一个根。
我在想某种具有一定程度随机性的爬山,以避免任何局部最小值,但是你怎么知道最小值是否小于零,或者你只是还没有找到它?我认为该功能不应该有超过两个最低点,但我不能绝对确定足以依赖它。
如果有帮助,在这种情况下,x 表示时间,f(x) 表示当时船舶与轨道上的物体(月球/行星)之间的距离。我需要它们彼此相距一定距离的第一点。
gnuplot - Gnuplot 的计算不正确
我尝试用 gnuplot 绘制轨道速度,但不知何故 gnuplot 得到的结果与我完全不同。现在根据经验,我认为我的值是正确的,但我用谷歌的计算器检查了它并得到了我的结果。
我使用维基百科的公式,谷歌在远点处的速度约为 2.2 km/s。现在 gnuplot 本身的速度约为 3.2 km/s。
我想知道我是否犯了错误?我将公式直接复制到 Google 并替换G
,M
并R
使用常量值和x
100000 并获得上面链接的结果。
javascript - 使用 jQuery 使多个对象在同一轨道上旋转但位置不同
您好,我试图为一个可以围绕 1 个中心旋转对象的小脚本找到一个解决方案,但这对我来说似乎有点太棘手了。我找到了几乎完美的解决方案,并尝试对其进行修改以满足我的需要,但有一个问题。
我正在尝试使 3 个带有文本的对象以相同的速度、相同的轨道但不同的起始位置旋转,就好像它们是等边三角形的顶点(顶点)一样。
到目前为止,这是我的小提琴:
HTML:
CSS:
我为每个对象使用了不同的速度和转数,因为我不知道如何设置不同的起始位置而不弄乱。如果我在 CSS 中触摸任何对象的 x,y 坐标,那么轨道就会混乱。似乎对象位置计算是相互关联的。如果我改变坐标,那么计算也会改变。但我不知道如何解决这个问题。
python - 从轨道元素在 Python 中绘制轨道
我创建了一个程序来获取位置和速度状态向量并计算所有开普勒轨道元素。我想做的下一步是绘制轨道!关于如何使用 Python 3 解决这个问题的任何建议?此外,任何关于将这个问题迁移到哪里的建议(如果这个位置不合适)将不胜感激。
algorithm - 如何在共振中找到行星
我正在尝试找到一种方法来检测共振的行星的轨道参数(周期、偏心率、半长轴......)。
我知道如果两个行星之间的比率是可公度的,这意味着它们处于共振状态,但是假设我想知道它们在哪个共振中,我该怎么做呢?
例如,我有 N 个行星和周期的矩阵。如何创建一个循环来检查行星是否以及在哪个共振中?
就像是:
非常感谢。
我制作了这个程序,我有一个 2xN 矩阵,其中的列是行星的 ID 及其周期,行是行星的数量,例如:
从一个行星系统更改为另一个系统的诀窍是将一个系统的所有行星重命名为相同的数字,将另一个系统的行星重命名为另一个数字,这样,我就可以将共振条件从一个系统更改为另一个系统一。
程序很简单:
- 读取文件并保存列和行号,
- 创建并保存 col*row 对象的矩阵,
- 将行星的“名称”和“周期”保存为向量,
- 开始循环:
这是我写的 IDL 代码:
问题:
- 我无法理解如何消除共振的倍增(2:4、3:6 等);
- 在第二个 for 循环(有行星的那个)中,行星的数量每次都必须改变,但我不明白如何改变它。
c++ - 太阳系项目,C++。无法获得负加速度(行星不会环回)
首先,我正在使用非常接近欧拉方法的方法来计算我的星球的位置。我知道这不是最准确的方法,但我一直在使用velocity verlet 近一个星期,但无法让它发挥作用。我的问题是我无法让我的星球围绕太阳循环,x 或 y 位置不断增加。任何帮助表示赞赏!谢谢!这是我的代码:
这是它调用的函数:
和