問題タブ [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.

0 投票する
3 に答える
846 参照

javascript - Three.js のオブジェクト間の傾斜回転

私はThree.jsのような太陽系を再現しようとしていますが、惑星を星の周りに傾けて回転させることはできません:

回転角度

これはフィドルのサンプルですが、回転が間違っています: http://goo.gl/MzcwI

私はこの解決策を試しました: 軸three.jsで3Dオブジェクトを回転させる方法は? 成功せずに。

誰かが私を助ける手がかりを持っているなら、ありがとう

0 投票する
1 に答える
1100 参照

python - ODEのPythonを解く際のエラー

私は、ODEとSciPyの常微分方程式関数を使用して火星への衛星アプローチをシミュレートするように依頼された大学のプロジェクトを持っています。

2次のODEを2つの1次のODEにすることで、2Dでシミュレートすることができます。ただし、コードがSI単位を使用しているため、数秒で実行され、Pythonのlinspace制限は、1つの完全な軌道をシミュレートすらしないため、時間制限にとらわれています。

変数と定数を時間とキロメートルに変換しようとしましたが、コードでエラーが発生し続けます。

私はこの方法に従いました:

http://bulldog2.redlands.edu/facultyfolder/deweerd/tutorials/Tutorial-ODEs.pdf

そして、コードは次のとおりです。

PyLabからエラーコードをコピーして貼り付ける方法がわからないため、エラーのPrintScreenを取得しました。

xのodeintを実行するとエラーが発生します

t = linspace(0.01,24.0,100)およびxinit = array([0.001,5251])の2番目のエラー:

2番目のタイプのエラー

誰かがコードを改善する方法について何か提案があれば、私は非常に感謝します。

どうもありがとうございます!

0 投票する
3 に答える
1110 参照

c# - 船と物体の影響範囲との遭遇を 2D で予測する方法

長年のリスナー、初めての発信者。私は XNA で小さな趣味のゲームを作成しています。これは、海上のコンテナ船に似た、宇宙の輸送船に関するものです。制限された 2D 環境で、船と惑星/月の重力圏との遭遇を予測できる必要があります。船と惑星/月、略してボディの位置は、ケプラー軌道要素から決定されます。船と本体は両方とも同じ引力の中心を周回します。

私がこれまでに考案したアプローチは、最初に遠点と近点 (引力の中心から最も遠い点と最も近い点) でいくつかの予備的なチェックを行い、遭遇が可能かどうかを確認することです。このようなチェックの間に、船の軌道が開いている場合 (双曲線、私は放物線のケースを双曲線に近似します)、遭遇することができなかった多くのシナリオを除外できます。

これらのチェックで遭遇が可能であると判断された場合、船が遭遇に適している引力の中心からの最小距離と最大距離を決定します。次に、その最小値と最大値によって定義された 2 つの円と船の軌道の交点を取得します。これにより、船の軌道上に 0、2、または 4 つの点が生じ、ボディの球体に遭遇する可能性のある 0、1、または 2 つの期間が定義されます。この時点で交差がゼロの場合、船の軌道全体が遭遇ゾーンにある可能性があります。これはおそらくまれな極端なケースですが、カバーする必要があります。

船が軌道上でこれらのポイントを通過する時間を取得し、遭遇を確認するための 1 つまたは 2 つの時間枠を与えることができますが、そこから私の最善の解決策は、時間をステップに分割して時間範囲を検索し、ボディの位置を計算することです。それらの時間、そして出会いのテスト。

このアプローチの問題点は、出会いを効率的に見つけるためのステップを踏むサイズを知ることです。Body の位置を一度に取得するのはややコストがかかるため、できる限り少なくしたいと思いますが、ステップが大きすぎると、出会いを見逃す可能性があります。

検索スペースを減らすのに役立つ共焦点円錐形状の特性はありますか? または、実質的に円錐経路に沿って移動する点と、焦点を共有する楕円に沿って移動する円との間の遭遇/衝突を予測する他の方法はありますか。

0 投票する
3 に答える
2532 参照

python - Python SGP4 1.1 間違った軌道を計算する

Python SGP4 1.1 モジュールを使用して、MEO 衛星の位置と速度を計算しています。STK および JSatTrak と比較すると、位置と速度の戻り値が正しくないことに気付きました。サテライトには約 6 時間の地上リピート トラックがあるはずですが、このプログラムは 4:47:51 の地上リピートを示しています。私が間違っていることはありますか?

0 投票する
4 に答える
1636 参照

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) はやや計算コストが高く、この最初のルートを何度も見つける必要があります。

局所的な最小値を回避するために、ある程度のランダム性を備えたある種の山登りを考えていましたが、ゼロ未満の最小値がなかったか、それともまだ見つかっていないかをどうやって知るのでしょうか? 関数には最小点が 2 つ以上あるべきではないと思いますが、それを信頼するのに十分なほど完全に確信することはできません。

参考になれば、この場合の x は時間を表し、f(x) はその時点で船と軌道 (月/惑星) 内の物体との間の距離を表します。それらが互いに一定の距離にある最初のポイントが必要です。

0 投票する
2 に答える
1207 参照

javascript - jQueryを使用して、複数のオブジェクトを同じ軌道上で異なる位置で回転させる

こんにちは、1 つの中心を中心にオブジェクトを回転できる小さなスクリプトの解決策を見つけようとしていましたが、少しトリッキーすぎるようです。ほぼ完璧な解決策を見つけて、自分のニーズに合わせて修正しようとしましたが、問題があります。

正三角形の頂点(頂点)であるかのように、同じ速度、同じ軌道、異なる開始位置で回転するテキストを含む3つのオブジェクトを作成しようとしています。

これまでの私のフィドルは次のとおりです。

HTML:

CSS:

めちゃくちゃにすることなく異なる開始位置を設定する方法がわからないため、オブジェクトごとに異なる速度と回転数を使用しました。CSS の任意のオブジェクトの x、y 座標に触れると、周回が台無しになります。オブジェクトの位置計算がつながっているようです。座標を変更すると、計算も変更されます。しかし、これを修正する方法がわかりません。

0 投票する
2 に答える
3454 参照

python - 軌道要素から Python で軌道をプロットする

位置と速度の状態ベクトルを取り、すべてのケプラー軌道要素を計算するプログラムを作成しました。私がやりたい次のステップは、軌道をプロットすることです! Python 3 を使用してこれにアプローチする方法に関するアドバイスはありますか? また、この質問をどこに移行するか (この場所が適切でない場合) についてのアドバイスをいただければ幸いです。 ここに画像の説明を入力

0 投票する
1 に答える
234 参照

algorithm - 共鳴している惑星を見つける方法

軌道パラメータ(周期、離心率、長半径など)から共鳴している惑星を検出する方法を見つけようとしています。

2 つの惑星の比率が一致している場合、これはそれらが共鳴していることを意味することを知っていますが、それらがどの共鳴状態にあるかを知りたいとしたら、どうすればそれを行うことができますか?

たとえば、N 個の惑星と周期のマトリックスがあります。惑星がどの共鳴にあるかを確認するループを作成するにはどうすればよいですか?

何かのようなもの:

どうもありがとう。

私はこのプログラムを作成します。列が惑星のIDとその周期である2xNマトリックスがあり、行は惑星の数です。たとえば、次のようなものです。

惑星のあるシステムから別のシステムに変更するトリックは、システムのすべての惑星を同じ番号に変更し、他のシステムの惑星を別の番号に変更することです。そのため、あるシステムから別のシステムに共鳴条件を変更することができます1。

プログラムは簡単です:

  1. ファイルを読み取り、列と行の番号を保存します。
  2. col*row オブジェクトのマトリックスを作成して保存します。
  3. 惑星の「名前」と「期間」をベクトルとして保存し、
  4. サイクルを開始します。

これは私が書いたIDLコードです:

問題:

  1. レゾナンスの倍数 (2:4、3:6 など) を削除する方法がわかりません。
  2. 2 番目の for ループ (惑星のループ) では、惑星の数を毎回変更する必要がありますが、これを変更する方法がわかりません。
0 投票する
2 に答える
357 参照

c++ - 太陽系プロジェクト、C++。負の加速度を取得できません (惑星はループバックしません)

まず、オイラー法に非常に近いものを使用して惑星の位置を計算しています。これが最も正確な方法ではないことはわかっていますが、ベロシティ ベルレットを使用して 1 週間近く取り組んできましたが、機能させることができません。私の問題は、惑星を太陽の周りにループバックさせることができないことです.xまたはyの位置が絶えず増加しています. どんな助けでも大歓迎です!ありがとう!これが私のコードです:

呼び出す関数は次のとおりです。