欢迎光临散文网 会员登陆 & 注册

python 打造天体运动(仿真三体附源码)

2022-05-19 16:20 作者:海鸥之道  | 我要投稿

最近在研究python三维运动建模,从零开始学习,目标是做一个震撼好看的三体运动,如下:

三体运动假象图

目标确定好了,下面就是开始计划如何实现,首先想到了借助三维的库,用什么库呢? 三维零基础的小编只能去问度娘,度娘也诚不欺我,目前三维主流的库有VTK、OpenGL、Vpython以及Mayavi,这么多库如何选择呢? 一次排开站好,下面进行政审。

1、VTK 关键点介绍:

VTK 在OpenGL 基础上用 C+ + 语言开发而成,适用于快速开发静态三维模型。(由于我们要做动态的,所以舍弃)

2、OpenGL

从简书大佬文章中得知,OpenGL从3.2开始,便舍弃了渲染功能,官方给出的理由是渲染导致OpenGL工作效率降低,且OpenGL上手较为困难,资料极少,连书都没有,且不是开源。(由于志在炫酷震撼,无渲染不可,故舍弃)

3、Vpython

VPython是一套简单易用的三维图形库,使用它可以快速创建三维场景和动画。(国内小众,但是功能比较强大)

4、Mayavi

Mayavi更高级了,它是基于VTK开发的,适用于创建三位场景及动画,还有交互式功能,目前网上资料较多,适合学习。

经网上资料分析,适合承担本次项目开发的软件库,暂定Vpython和Mayavi。

选好库了,下面我们开安装。

世界之大,无奇不有,一动手,就会发现伟大的博主们会跟你开一个玩笑~

经各大网站、贴吧以及视频之力,得出一个结论:

Vpython安装方式直接pip,开发环境支持python3.8、python3.9、python3.10,;

至于Mayavi安装及其费劲,需要各种包支持,并且还有先后顺序要求,

事实上呢?

直接pip install Mayavi 直接成功,而 vpython呢 ? 安装是可以,但是一运行 ,有图有真相:

win7 64位 + pycharm+ python3.8/python3.9/python3.10

win7 64位 +anconda 2019.10版,这个是因为anconda 内置python 是3.7缘故安装不了

win10  anconda 最新内置python3.9/anconda 和 2020版

win10 + pycharm+ python3.8/python3.9/python3.10

以上框架小编均一一测试,大都可以安装vpython,但运行都报一些奇怪的错误,经分析,因vpython运行需调用页面接口,vpython可能需要谷歌页面支持,但国内以禁谷歌,所以调用不了,仅供参考,无法求证。

事已至此,我们只得用mayavi库了,好在mayavi安装如此顺利(由此观之度娘有时候也不靠谱)。

测试一个程序吧

运行,如下:

哇塞,及其的惊喜、意外!居然真有界面,还挺好看

咳, 淡定淡定,,离目标还很远,我们继续

下面就是怎么画球体,这个简单,网上教程一大把,随便来一个,走起:

运行:

有了一个,就可以有三个,没难度,直接大点步,往天体上靠拢,给出三个天体参数,如下:

运行,显示:

贴图纹理函数,修改背景色,核心代码如下:

运行效果:

近照
全景

还差最后一步,就是运动了,mayavi提供animate装饰器用来显示动画,经过长时间的努力努力调试,球球终于可以运动了,不过遗憾的就是贴纹理之后,就卡主了,终究有一些小遗憾,后面我还会继续调试,争取圆满完成任务;当然其中的天体力学部分,也调试了很长时间,才可以让三个星球稳定运转,不多说,源码如下:

显示结果无法插入视频,只能截几张图显示了:

开启位置
运行第一次交互位置
运行大约15秒钟

感兴趣的童鞋们,可以自己运行一下代码哦! 后续我在改进下星空,然后再跟大家一起分享代码~  





python 打造天体运动(仿真三体附源码)的评论 (共 条)

分享到微博请遵守国家法律