太陽系の3Dシミュレーションをしています
すべての惑星について、私はクラスCelestialBodyのインスタンスを持っています。私は、太陽、惑星、およびそれらの衛星の回転と回転に次のコードを使用しています。
world = Matrix.CreateTranslation(0,0,0) * Matrix.CreateRotationY(rotation) * Matrix.CreateTranslation(position) * Matrix.CreateRotationY(revolution);
- 回転は、惑星を自身の軸を中心に回転させるためのフロート変数です。
- 回転は、軌道上の惑星の回転のための私のフロート変数です
- 位置は、私のvector3変数に対して、体を軌道上または中心からの半径に配置します。
postion = new Vector3(70,0,0)
今では本当にうまくいきます。
しかし、問題は、行列の乗算後に文字通りx、y、x座標で変換された惑星の位置を特定する必要があることです。
方法 ?私の惑星の現在のX、Y、Z座標を取得します
私にとってのもう1つのオプションは、2D円を計算する数式を使用することです。