デモの表示バグのレポート・リクエスト機能

これは、惑星の相互作用をシミュレートするためのPythonプログラムです
つまり、惑星の大衆と初期位置と速度に入ることができることを意味し、私たちのプログラムは、彼らが素晴らしいシミュレーションでどのようにお互いの相互作用をどのように相互作用させるかを示します
私たちのプログラムは、予想されるシナリオを表示しますが、100%正確ではない場合があります。
多くの既製のデモがあなたを感動させるかもしれません!
私たちのアプリでできることのいくつか:
開発マシンに次のすべての前提条件をインストールしていることを確認してください。
pip --version
プロジェクトをダウンロードしたい場所で最初にCMDを開き、次のコマンドを書きます。
リポジトリをローカルマシンにクローンします。
git clone https://github.com/suliman-99/Space-Simulation.git
プロジェクトディレクトリに移動します。
cd Space-Simulation
次に、PIPでPipenvモジュールをインストールするには、このコマンドをCMDに書き込むだけです
pip install pipenv
pipenvを使用して必要な依存関係をインストールします。
pipenv install
プロジェクトを実行する:
Windows:
python main.py
LinuxまたはMac:
python3 main.py
最初のステップは、前のセクションのインストールに従ってプログラムを実行することです。
アプリが牽引ボタンで開きます: Create new Simulationするか、 Simulation From Fileを選択して既製のデモを開くか、保存したデモまたは状態を開きます
次に、 Run Simulationをクリックしてシミュレーションを開始します
デフォルトのブラウザは、シミュレーションページで開きます
Save Stateボタンをクリックして現在の状態を保存すると、 demos/saved_state.txtファイルに保存され、そこから再度使用できます。
新しいデモを試してみたい場合は、プログラムを閉じて再び開く必要があると言ってすみません
ニュートンの普遍的重力の法則
F = (G * m1 * m2) / r^2
G :重力定数
m1 、 m2 :これら2つのオブジェクトの質量
r :大衆の中心間の距離
F :それらの間に作用する重力
この式を使用して、惑星の各ペアの間の力を計算します
この方法では、Planeetsの総力を更新します。
def apply_gravity(planet1: Planet, planet2: Planet) -> None:
u = planet2.pos - planet1.pos
grav = g * planet1.mass * planet2.mass / (u.length() ** 2)
planet1.add_force(u.scale_to(grav))
planet2.add_force(u.scale_to(-grav))
ニュートンの第二法則
F = m * a => a = F / m
m :オブジェクトの質量
F :総力が適用されます
a :それの加速
私たちは、この林を使用して、それに加えられた総力に応じて各惑星の加速を計算します
その後、電流速度と加速度に応じて、新しい速度(速度ベクトル)を計算できます
その後、現在の位置と速度に応じて、新しい位置(x、y、z)を計算できます
その後、新しい場所でオブジェクトを再レンダリングできます
私たちは同じ秒で多くの時間を実行することができます(10時間以上)、良い視覚化が得られます
この方法でPalnetデータを更新します。
def update(self, dt: float) -> None:
self.pos += (self.velocity * dt) + (self.acceleration * ((dt ** 2) / 2))
self.velocity += self.acceleration * dt
self.acceleration = self.force / self.mass
別のトピック衝突
Project Name
│ main.py
└───core
│ │ camera.py
│ │ environment.py
│ │ file.py
│ │ physics.py
│ │ planet.py
│ │ vector.py
│
└───gui
│ screens
│ app.py
│ controls.py
assets私たちの画像ですdemos私たちのデモであり、状態はファイルとして保存されますresourcesいくつかの細いグローバル変数testingですスペースシミュレーションをどのように改善できるか、またはバグを報告したい場合は、問題を開きます。すべての貢献とあらゆる貢献が大好きです。
詳細については、寄稿ガイドをご覧ください。
Suliman Awad [email protected] -LinkedIn
プロジェクトリンク:https://github.com/suliman-99/spaceシミュレーション
MITライセンス
Copyright(c)2023 Suliman Awad
詳細については、ライセンスファイルをご覧ください。