問題タブ [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 投票する
0 に答える
73 参照

optimization - XNA ゲーム開発 軌道運動

宇宙空間を舞台にしたゲームを開発しようとしています。完全な 3D 環境を作成することにしました。私たちの目標は、無限の世界を作成することです。必要なときに自動的に作成されます。私たちの課題の 1 つは、惑星の軌道運動を最適な方法で作成する方法です。何百ものそれらがあり、すべてのフレームでそれらの新しい位置を計算するのは非常に高価に聞こえます。

これに対処する方法は 2 つあります。

  1. 惑星を作成した後、回路内のすべての位置を計算し (時間によって異なります)、ゲーム中にメモリから読み取るだけです。しかし、それはメモリの大きな浪費のように聞こえます。
  2. カメラの視野範囲内にある場合にのみ、動きを計算します。ただし、画面外にあるときの他のオブジェクトとの衝突検出で別の問題が発生します。

私の質問は次のとおりです。誰がそれをどのように行うべきか知っていますか? CPUまたはメモリ使用量の最適化に焦点を当てるかどうか疑問に思いますか?

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

javascript - Three.js で太陽系を視覚化するための軌道力学 (惑星は x、y、z)

Three.js で太陽系の視覚化に取り組んでいます。今のところ、私の惑星には基本的な円軌道があり、モデルをできるだけ現実的なものにしたいと考えています。ウィキといくつかの記事を調べましたが、これはかなり高度です。

数千年、数百万年の軌道についてはあまり気にしません。次のことを実証する、ほぼ現実的なモデルが必要です。

  1. 楕円軌道を修正する
  2. 傾斜
  3. 動的に変化する速度 (近日点でより速くなる)

おそらく軌道要素を使用して、特定のt (動的に変化する)で私の惑星のx、y、zを計算する適切に複雑な方法があるかどうか疑問に思います。

希望、私は自分の考えを明確にしました。ありがとう

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

python - Python Matplotlib アニメーション フレームが重なっています

私は軌道プログラムに取り組んでおり、現在、月を下向き (-y) 速度 -1023 でのみアニメーション化しています。アニメーションは機能しますが、各フレームは次のフレームがオンになったときに Figure にとどまります。 ここに画像の説明を入力

これが私のコードです:

0 投票する
0 に答える
1094 参照

python - Python Matplotlib: 軌道プログラムを 3D に変換する

実際の物理学を使用して、2D で周回プログラムを完成させました。これはかなりクールです。私が今やりたいことの 1 つは、方程式に "z" 力、加速度、速度を追加することです。私はこれを行いましたが、プログラムは垂直線を周回する単なる垂直線です:

惑星は、これまで考えられていたのとは異なり、明らかに垂直線です

円のように球を作成するコードがないため、trig を使用する必要がありました。

コードは次のとおりです。

このプログラムなしでサークルを作成するためのトリガーをテストしましたが、動作します。また、ワイヤーフレームの球体の代わりにサーフェス化された球体を作成するための提案はありますか?

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

cocos2d-iphone - cocos2d シマリスで軌道重力を適用する方法

Cocos2d - Chipmunk - Spritebuilder で IOS ゲームを構築しています。あるポイントの周りをキャラクターが周回するようにする必要がありますが、実際の物理学を使用して軌道を実装するのはかなり困難でした。これまでのところ、私は 2 つの方法を試しました。1 つはプレイヤーから惑星までの距離ジョイントを作成し、距離ジョイントの端と惑星に描かれた仮想線の間に角度が作成される 90 度の力をプレイヤーに適用することです。それに対して90度の角度。彼は狂ったように動き回り、この方法は私にはうまくいきません.

次に、惑星からの半径で円周上の 180 ポイントを計算してみました (これは、プレイヤーへの影響を検出して実装する境界です)。彼はパスを正確にたどらず、パスからかなり離れているため、これは機能しません。彼が惑星を一周するように、惑星に向かって重力も適用する必要があると考えています。その力を計算する方法、適用する方法、またはそれが役立つかどうかはわかりませんが.

決して機能しないが、テストに使用された 3 番目の方法は、彼の位置を次の円周ポイントに設定することでした。彼は軌道を回りますが、衝突は機能しません (スペース ジャンクの破片が彼の邪魔をした場合など)。彼は単に他のオブジェクトのすぐ上に配置されます。この世界は、衝突が必要ない場合に最適で、独自の物理エンジンを作成しています。これは洗練された方法ではないため、避けます。

私がすでに行ったことを修正し、それがどのように機能するかを教えてください。または、他のオプションとそれらの実装方法を明らかにしてください。

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

javascript - Javascript 精度の緩和

ここに画像の説明を入力

JavaScript の丸め誤差がかなり扱いにくいことは理解していますが、アドバイスをお願いします。

アプリケーションの丸め誤差を軽減する最善の方法は何ですか? 大きな質量の周りの軌道であるべき立方体があります。立方体は軌道ごとにかなりの量の軌道運動量を獲得し、最終的に介入なしで脱出速度に到達します。

これを防ぐには、軽量な方法が必要です。

数字を修正する方法を見つけようとするのが私の最善の策ですか、それとも、それがどこにあるべきかの論理的な仮定に基づいてエラー修正を使用して、それをファッジして元の場所に戻す方がよいでしょうか?

私の物理学の関数は次のとおりです。

function physGravity(a, b){ var grav = new THREE.Vector3(0, 0, 0); grav = grav.subVectors(a.position, b.position); var r = grav.lengthSq(); var A = (G)*(b.mass)/(r); grav = grav.normalize(); grav.multiplyScalar(-A); a.gravity = grav; }

0 投票する
0 に答える
292 参照

astronomy - ピエフェムで静止軌道?

ピエフェム(_n = 1.01日あたりの回転数)で静止軌道を作成しようとしています。観測者を衛星の真下に配置し、alt='90.0' および az=0 であることを確認して、静止していることを確認したいと思います。私のテストでは、観測者を西経 100 度の赤道に配置しています。これが私のコードです:

そして出力:

観測者の経度を変更しても出力は変わらないことがわかりました。sat._raan衛星の頭上位置 ( )を設定すると思いますsat.sublongが、これも出力には影響しません。私は常に alt=-90:00:00.0 az=0:00:00.0 を取得します。(地球の中心に向かって) と sublat、sublong は意味がありません。


アップデート

の奇妙で変化しない出力の理由は、sublat=1389660529:33:00.8デフォルトsat._epochで「1899/12/31 12:00:00」であることと、この問題によるものです。設定sat._epoch = obs.dateはこれを回避しますが、空の位置が選択された地球座標の上に固定されている静止軌道を定義するという目標を達成する方法はまだわかりません。