某日在微博上看到一张很有意思的动图:金星和地球位置连线动态变化,最后得到一张很美,看着极度舒适的图。
于是计划写一个程序模拟这么一个过程。
思路应该是非常简单的,查找一些金星和地球的基本数据,然后分别计算出某一时刻它们所在的位置,最后用线段将两个位置连接起来就可以了。
当然,用程序实现起来也不难,在R中或者在Python中,使用三角函数求值,一段代码就能搞定。不过不过,既然前段时间学习了C语言,何不用C语言写呢,这是一次很好的练习机会。(用C画图对初学者来说有点困难,因而还是回归到R中作图)。
模拟条件设定:
地球公转:365天
金星公转:225天
地球公转半径:1个天文单位
金星公转半径:0.7个天文单位
假定公转是在同一平面的两个同心圆
按照上述简化模型,金星和地球完成一个周期需要45年。假如我们以10天为一个采样单位,来绘制金星和地球之间的相对位置的连线。可以得到以下过程(内部圆为金星轨道,外部圆为地球轨道):
当然,这儿没有再做其他的美化效果,看起来不如微博上的好看。
下面分别以5天、10天、50天和100天为采样时间点,最终得到以下图形。
此处不在展示具体代码,参见GitHub主页:
https://github.com/Yiguan/earth_venus_orbit
总结两个知识点:
文件指针的使用方法,以此将程序生成的数据写入到外部文档。
对命令行参数的传入。源代码中使用了sscanf()函数将参数传入代码内部使用。
======= THE END =====