10

重要な注意: この質問は、コンピュータ ゲームの物理システムである "PhysX" とはまったく関係ありません (ボール ゲームなどのアーケード ゲームの物理に役立ちます)。PhysX は、Unity3D やその他のゲーム エンジンに組み込まれているシステムです。ここでは、PhysX はまったく関係ありません。

//////////////////// UPDATE (一番下を先に読む) /////////////////////

私は値をログに記録し、正確な問題がどこにあるかを検索してきましたが、見つけたと思います。コードにこのようなものがあります

Velocity += Acceleration * Time.deltaTime;
position += Velocity * Time.deltaTime;

加速度は 0,0000000000000009.. のようなものです。コードが流れると、フロートに問題はなく、本来の速度で増加します。しかし、最初は、地球の初期位置は (0,0,23500f) です。これは、最後に示したチャートで確認できます。

さて、スピード * タイムデルタ (この時点では 0,00000000000000005 のようなもの) を 23500 の位置に追加すると、基本的には追加されません。位置はまだ (0, 0, 23500) であり、(0,0, 23500.00000000000005) のようなものではないため、地球は動かないため、加速度は変化しません。

地球の初期位置を 0,0,0 に設定しても、加速度を 0.000000000000000009 に設定して、その位置が (0,0,23500) であると仮定すると、速度 * timedelta を「加算」します。それは (0,0,000000000000000000005) のようになり、増加し続けます。float が 0 の場合、このような小さな値を追加しても問題ありません。しかし、float が 23500 のようなものである場合、小さい値は加算されません。

それがまさにユニティの問題なのか、C#のフロートの問題なのかはわかりません。

そのため、小さな値で機能させることはできません。これを克服できれば、私の問題は解決します。

/////////////////////////////////////////////// ////////////////////////////

私は、太陽系をシミュレートするために n 体の物理学を開発してきたので、可能な限り現実的なものにするためにデータを収集してきました。しかし、データサイズに問題があります。私はインターネットを隅々まで検索しましたが、人々がどのようにこれを克服したかを説明するものは 1 つも見つかりませんでした。(もしそうなら)だから私はここで私のショットを試しています。

そこで、惑星間の距離、半径、「質量」の比率を一定に保つために、すべてのデータを計算するための Excel ファイルを作成しました。(なぜ誰かがインターネット上に「その」半径チャートがあれば地球の質量はどうなるのだろうか?)ssを添付ファイルとして提供します。基本的に、惑星のすべてのプロパティを特定の参照に「正規化」または「スケーリング」します。この場合、「地球の半径」として参照しました。

私は unity で作業していますが、ご存知のように、unity では「大きすぎる」または「小さすぎる」値を使用することはできません。そのため、太陽系を「大幅に」縮小する必要がありました。

したがって、ニュートンの万有引力の法則、つまり F = GMm/r^2 を使用して、簡単にするために、他のすべての物体から特定の物体について a = GM/r^2 を直接計算しています。

したがって、「太陽に向かう」地球の重力加速度の実際の値はおよそ 0,000006 km/s^2 であり、これは 1 で扱うには信じられないほど小さい値ですが、うまくいく可能性があります。それでも、この値を取得するには、地球の半径 (縮尺) を 6371 単位に設定し、太陽を 696,342 の縮尺に設定する必要があります。

だから私は言った、地球の半径を単位単位で1にしましょう。ですから、半径が変わると、質量も距離もすべてが変わります... 私は惑星の密度を維持し、新しい半径で新しい体積から質量を計算しました。すべての計算は添付ファイルにあります。

つまり、地球の半径を 1 とすると、太陽に向かっての重力加速度は 0,0000000000009 のようになり、途方もなく小さいのです。もちろん、Unity はその値では機能しません。

したがって、代わりに地球の半径を大きくすると、太陽の質量と半径がとてつもなく大きくなり、それを扱うことができなくなります。

他の人がこれをどのように修正したか、この問題を克服するために何をしたかはわかりませんが、ここからわかるように、太陽系の現実的な n 体シミュレーションを行うことは不可能に見えます。(少なくとも団結して)

したがって、画像を投稿するには10人の担当者が必要です-_-、代わりにリンクを提供します。 http://berkaydursun.com/solar_system_simulator/data.PNG また、ディレクトリの 1 つ上には、n 体計算を使用する実験的な太陽系シミュレーションがありますが、非現実的な値が使用されています。それは非常にうまく機能し、本物に近いようにも見えますが、いいえ、正しい比率ではありません^^ 必要に応じて、ここでテストできますhttp://berkaydursun.com/solar_system_simulator/

編集:うわー、ほとんどすべての段落を「だから」で始めました^^

4

2 に答える 2