我正在寻找动画我的图形(下面)和我不确定从何处或如何开始,因为我没有动画经验。我不知道它是如何工作的,也不知道代码的结构应该是什么,所以如果有人能提供一个伪代码或一个算法,我将非常感激。我也提供了我用来绘制下图的代码。在enter code here

from scipy.integrate import odeint

import scipy as sci

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.animation as ani

# Universal Gravitational Const.

G = 6.674e-11

# Defining Mass

m1 = 2

m2 = 3.5

m3 = 2.3

# Init positions in graph (array)

pos1 = [-5,0,1]

pos2 = [5,0,10]

pos3 = [0,1,3]

p01 = np.array(pos1)

p02 = np.array(pos2)

p03 = np.array(pos3)

# Init velocities (array)

vi1 = [1,0.01,0]

vi2 = [-5,0,1]

vi3 = [0,-1,0]

v01 = np.array(vi1)

v02 = np.array(vi2)

v03 = np.array(vi3)

#Function

def derivs_func(y,t,G,m1,m2,m3):

d1 = y[:3]

d2 = y[3:6]

d3 = y[6:9]

v1 = y[9:12]

v2 = y[12:15]

v3 = y[15:18]

dist12 = np.sqrt((pos2[0]-pos1[0])**2 + (pos2[1]-pos1[1])**2 + (pos2[2]-pos1[2])**2)

dist13 = np.sqrt((pos3[0]-pos1[0])**2 + (pos3[1]-pos1[1])**2 + (pos3[2]-pos1[2])**2)

dist23 = np.sqrt((pos3[0]-pos2[0])**2 + (pos3[1]-pos2[1])**2 + (pos3[2]-pos2[2])**2)

dv1dt = m2 * (d2-d1)/dist12**3 + m3 * (d3-d1)/dist13**3

dv2dt = m1 * (d1-d2)/dist12**3 + m3 * (d3-d2)/dist23**3

dv3dt = m1 * (d1-d3)/dist13**3 + m2 * (d2-d3)/dist23**3

dd1dt = v1

dd2dt = v2

dd3dt = v3

derivs = np.array([dd1dt,dd2dt,dd3dt,dv1dt,dv2dt,dv3dt])

derivs3 = derivs.flatten()

return derivs3

yo = np.array([p01, p02, p03, v01, v02, v03])

y0 = yo.flatten()

time = np.linspace(0,200,500)

sol = odeint(derivs_func, y0, time, args = (G,m1,m2,m3))

x1 = sol[:,:3]

x2 = sol[:,3:6]

x3 = sol[:,6:9]

fig = plt.figure(figsize = (15,15))

ax = fig.add_subplot(111,projection = '3d')

ax.plot(x1[:,0],x1[:,1],x1[:,2],color = 'b')

ax.plot(x2[:,0],x2[:,1],x2[:,2],color = 'm')

ax.plot(x3[:,0],x3[:,1],x3[:,2],color = 'g')

ax.scatter(x1[-1,0],x1[-1,1],x1[-1,2],color = 'b', marker = 'o', s=30, label = 'Mass 1')

ax.scatter(x2[-1,0],x2[-1,1],x2[-1,2],color = 'm', marker = 'o',s=90, label = 'Mass 2')

ax.scatter(x3[-1,0],x3[-1,1],x3[-1,2],color = 'g', marker = 'o',s=60, label = 'Mass 3')

ax.legend()

python3d动图_如何在Python上制作3D图形的动画相关推荐

  1. python制作3d相册_如何在Python中制作3D图?

    这是3D绘图代码的MATLAB版本: 编辑: 这是当前的代码: plt.figure(2) fig_b = Axes3D(fig2) xx2 = np.arange(0, L+h_grid*L, h_ ...

  2. python三维图视角旋转_如何在python中旋转3d图? (或作为动画)使用鼠标旋转三维视图...

    我有这段代码,其中包含一个3D图.我在Spyder中运行代码;我想知道是否可以使这个绘图旋转(360度)并保存. 谢谢! P.s.对不起,如果这是一个愚蠢的问题,但我是Python的newby.如何在 ...

  3. python制作gif动图_怎样用Python制作好玩的GIF动图

    原标题:怎样用Python制作好玩的GIF动图 作者: 景略集智 https://jizhi.im/blog/post/pytogif 程序员共读整理发布,转载请联系作者获得授权 之前我们分享过用Py ...

  4. python并行处理for循环_如何在python上并行处理此嵌套循环

    我正在尝试减少名称列表,并且为了执行此操作,我使用了fuzzywuzzy图书馆. 我对所有名称执行两个for循环.如果两个名称的匹配分数在90到100之间,则我用第一个名字重写了第二个名字. 这是我的 ...

  5. 影之诗闪卡动图_影之诗怎么制作闪卡_闪卡的制作方法_软吧

    影之诗怎么制作闪卡呢?闪卡由于具有动态效果而受到很多玩家的欢迎.但是闪卡的制作流程也是蛮麻烦的.下面就让小易为大家带来影之诗闪卡的制作方法,感兴趣的小伙伴一起来看看吧. 制作方法 Step 1:找到想 ...

  6. python psycopg2_如何在Python上用“pip”安装psycopg2?

    如何在Python上用"pip"安装psycopg2? 我正在使用virtualenv,我需要安装"psycopg2". 我做了以下事情:pip install ...

  7. python队列怎么用_如何在Python中使用多处理队列? - python

    我很难理解多处理队列如何在python上工作以及如何实现它.假设我有两个python模块,它们从共享文件中访问数据,我们将这两个模块称为writer和Reader.我的计划是让读取器和写入器都将请求放 ...

  8. python如何做散点图-matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatte ...

  9. python画三维温度散点图-matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatte ...

  10. python绘制散点图-matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatte ...

最新文章

  1. 用户界面设计准则从何而来
  2. 25个视频神同步,还能给视频声音移花接木,谷歌开源最新自监督算法
  3. 物联网细分领域-车联网(OBD)市场分析
  4. 我们来谈下高并发和分布式中的幂等处理
  5. 函数的方法call、apply、bind
  6. 最近miRNA研究上取得的新进展论文汇总
  7. UVA10474 Where is the Marble?
  8. 基于OOS批量修改资源标签值
  9. django中遇到的错误并解决
  10. dubbo 使用学习五(dubbo开发中使用到的一些服务配置方式)
  11. PHP中文分词的实现
  12. ES常用DSL语句(kibana常用语句)
  13. Python修改图片分辨率(附代码) | Python工具
  14. 海外代理ip池购买推荐,易路s5海外ip代理如何提取使用?
  15. JAVA毕业设计家用电器销售网站计算机源码+lw文档+系统+调试部署+数据库
  16. 帝豪gs车机系统wince_用销量告诉你答案 选帝豪GS准没错
  17. week15作业A ZJM 与霍格沃兹
  18. VS2010、SQL Server 2008安装详解
  19. 一个文科生的工程师之路
  20. 数据库安全性定义与检查

热门文章

  1. 百度云智峰会 百度天像打造多媒体新生态
  2. css3 标点符号在首位,CSS 让标点符号不出现在行首
  3. Linux下使用icq(转)
  4. 开课吧java广告,开课吧Java面试题:虚引用与软引用和弱引用的区别
  5. TCPC-可用于笔记本,平板等HOST端的解决方案
  6. Python常用的基本编程规范
  7. 蓝韵DR采集工作站LINUX系统,蓝韵PACS系统的技术参数
  8. 计算机毕业设计基于ssm乒乓球裁判管理系统
  9. python 爬取数据(CBA所有球队数据) -爬虫
  10. Android Q适配攻略(五)(存储权限变更)