金星と地球の軌跡

ある日、Weiboで非常に興味深いアニメーション画像を見ました。金星と地球の位置が動的に変化し、ついに非常に快適に見える非常に美しい画像を手に入れました。

image.png

したがって、そのようなプロセスをシミュレートするプログラムを作成することを計画してください。

アイデアは非常に単純なはずです。金星と地球の基本的なデータをいくつか見つけて、それぞれ特定の瞬間の位置を計算し、最後に2つの位置を線セグメントで接続します。

もちろん、プログラムで実装することは難しくありません。RまたはPythonでは、三角関数の評価を使用して、コードの一部を実行できます。でも、少し前にC言語を学んだので、C言語で書いてみませんか?これは良い練習の機会です。(Cでの描画は初心者には少し難しいので、Rでの描画に戻ります)。


シミュレーション条件設定:

  1. 地球革命:365日

  2. 金星革命:225日

  3. 地球の回転半径:1天文単位

  4. 金星の回転半径:0.7天文単位

  5. 回転が同じ平面上の2つの同心円であると仮定します



上記の簡略化されたモデルによると、金星と地球がサイクルを完了するのに45年かかります。金星と地球の相対位置を結ぶ線を引くためのサンプリング単位として10日を使用するとします。次のプロセスが得られます(内側の円は金星の軌道であり、外側の円は地球の軌道です)。

image.png

もちろん、ここには他の美化効果はなく、Weiboのものほど良くはありません。


サンプリング時点として5日、10日、50日、100日を取り、最終的に次のグラフを取得します。


image.png

特定のコードはここには示されていません。GitHubのホームページを参照してください。

https://github.com/Yiguan/earth_venus_orbit


2つの知識ポイントを要約します。

  1. ファイルポインタを使用して、プログラムによって生成されたデータを外部ファイルに書き込む方法。

  2. コマンドラインパラメータの入力。ソースコードはsscanf()関数を使用して、内部で使用するためにパラメータをコードに渡します。



=======終わり=====

image.png


おすすめ

転載: blog.51cto.com/15069450/2577317