导语
春节期间上映的《流浪地球》似乎蛮火的(虽然我到现在也没看过T_T),后知后觉的我打算过来蹭一波热点的边边角角,利用python模拟太阳-地球-月亮运动模型。
让我们愉快地开始吧~
相关文件
关注微信公众号“Charles的皮卡丘”,公众号内回复‘运动模型’获取。
开
发
工
具
Python版本:3.6.4
相关模块:
pygame模块;
matplotlib模块;
numpy模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
逐步实现
模型构建:
![bfc0b99662ac81064f7c50d41cd27209.png](https://i-blog.csdnimg.cn/blog_migrate/d975deecd98bafb6ade2b7d474519a84.jpeg)
代码实现:
(1)简单版
这里我们先用pygame来实现一个简单版本的,也就是不考虑月球公转轨道和地球公转轨道的夹角,即φ取0,其代码实现如下:
![6cdfbfa20ce606602cb4c96a688eb60b.png](https://i-blog.csdnimg.cn/blog_migrate/f2534a4c37dd67c3b3b4af92fa263bc4.jpeg)
效果如下:
(2)复杂版
复杂版用matplotlib实现,即考虑月球公转轨道和地球公转轨道的夹角,其代码实现如下:
![fbd52d6eda2c8f697155b28eb4d1e798.png](https://i-blog.csdnimg.cn/blog_migrate/e2fcbc917f231a120f0b3657031341a6.jpeg)
效果如下:
其中,月球绕地球的轨道为薰衣草(lavender)色,月球绕太阳的轨道为紫(purple)色,地球绕太阳的轨道为小麦(wheat)色。
All done~完整源代码详见相关文件。
更多
代码截止2019-02-18测试无误。
关于本公众号文章转载说明:
转载请注明原作者、出处(即本公众号),若原文有参考文献,请保留。需要设白的请在原文下方留言,(sry),本人谢绝设置长期可转载账号。
○
○
![fee92a7faf048260c554cac8f884391c.png](https://i-blog.csdnimg.cn/blog_migrate/e7e9eadc57a18ebbb3f1faf4f08f3598.jpeg)
Charles的皮卡丘
Pikachu~