python作为一门简单易学且应用范围极广的语言有着其他语言无法比拟的优势,通过python可以实现各种各样的功能,例如我们可以利用python matplotlib的绘图库实现各种动态模拟仿真,在科学实验中有着极大的应用价值。下列是通过python实现地球公转的动态模拟图:

import numpy as np

import matplotlib as mpl

mpl.use("TkAgg")

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.animation as animmation

L1 = 10 #地球环绕轨迹的半径

v = 2*np.pi #地球运动的角速度

def updata (data): #随时间t变换设置新的地球位置的坐标,也即是随animmation.FuncAnimation函数的帧数参数变化每一帧的不同坐标位置的图片对象参数

global line

line.set_data([data[0], data[1]])

line.set_3d_properties(data[2])

return line,

def init(): #地球的起始位置

global line

ti = 0

t = t_drange[np.mod(ti, t_dlen)]

xt1 = x0 + L1 * np.cos(v * t)

yt1 = y0 + L1 * np.sin(v * t)

zt1 = z0 + 0

line, = ax.plot([xt1], [yt1], [zt1], marker='o', color='blue',markersize=8)

return line

def data_gen(): #随时间t变换的地球坐标,也即是animmation.FuncAnimation函数的帧数参数

global x0,y0,z0,t_dlen

data = []

for ti in range(1,t_dlen):

t = t_drange[ti]

xt1 = x0 + L1 * np.cos(v * t)#地球与太阳坐标关系方程

yt1 = y0 + L1 * np.sin(v * t)#地球与太阳坐标关系方程

zt1 = z0

data.append([xt1, yt1, zt1])

return data

t_range = np.arange(0, 1 + 0.005, 0.005)#设置环绕一周时间的范围以及运动间隔时间

t_drange = np.arange(0, 1, 0.005 )

t_len = len(t_range)

t_dlen = len(t_drange)

x0 = 0

y0 = 0

z0 = 0

x1 = x0 + L1 * np.cos(v * t_range)#地球坐标随时间变化的方程

y1 = y0 + L1 * np.sin(v * t_range)#地球坐标随时间变化的方程

z1 = z0 + np.zeros(t_len)

f = plt.figure(figsize=(6,6))#绘图的画布

ax = f.add_subplot(111,projection='3d')#设置3d坐标系

ax.set_aspect('equal')

ax.set_title("Sun-Earth-Moon Model")#设置图像标题

ax.plot([0], [0], [0], marker='o', color= 'red', markersize=16)#绘制太阳的各种属性

ax.plot(x1, y1, z1, 'r')#绘制地球图像

ax.set_xlim([-(L1 + 2), (L1 + 2)])#地球用动模型在坐标系中的范围

ax.set_ylim([-(L1 + 2), (L1 + 2)])#地球用动模型在坐标系中的范围

ax.set_zlim([-5, 5])#地球用动模型在坐标系中的范围

line, = ax.plot([], [], [], marker='o', color='blue',markersize=8,animated = True)#地球的形状颜色等属性

ani = animmation.FuncAnimation(f, updata, frames = data_gen(), init_func = init,interval = 20)#将上述函数对象传如animmation.FuncAnimation函数以生成连读的地球运动模型

plt.show()

python动态图形_用python生成地球运动的动态模拟动态图相关推荐

  1. python绘制动态图形_让Python绘制一套动态图形给你看看

    选自TowardsDataScience 作者:Costas Andreou 机器之心编译 参与:Jamin.张倩在读技术博客的过程中,我们会发现那些能够把知识.成果讲透的博主很多都会做动态图表.他们 ...

  2. 用python绘制图形_使用Python的turtle画炫酷图形

    例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides=6 colors=["red" ...

  3. 通过导入txt数据画出python turtle图形_【Python】txt文件读取绘画

    import turtle as t #绘画库 t.title('自动轨迹绘制') #标题 t.setup(800,600,0,0) t.pencolor('red') t.pensize(5) #数 ...

  4. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  5. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  6. python drop函数_用python帮财务小姐姐自动生成财务报表

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析简说Python严选 来源:python数据分析之禅   作者:小dull鸟 One old w ...

  7. python生成字母图片_Python 模拟动态产生字母验证码图片功能

    模拟动态产生字母验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image ...

  8. python樱花代码_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

    今天为大家介绍几个Python"装逼"实例代码,python绘制樱花.玫瑰.圣诞树代码实例,主要使用了turtle库 Python绘制樱花代码实例 动态生成樱花 效果图(这个是动态 ...

  9. python加载动态库_使用Python调用动态库

    我个人在日常使用电脑时,经常需要使用Google,于是就要切换代理,基本上是一会儿切换为代理,一会儿切换成直连,老是打开internet 选项去设置,很不方便,于是我萌生了一个想法: 做一个开关,我想 ...

最新文章

  1. 敲响警钟!智能汽车数据正在被“偷运出境”!
  2. Binary Tree Nodes(单表多实例查询)
  3. usb 系统消息_小米USB3.0分线器发布:四口USB 3.0+USB-C
  4. LINUX编译OPENJDK:The tested endian intarget (big) differs from the endian expected to be found in the
  5. 使用bat命令一键启动常用浏览器
  6. tomcat优化问题
  7. HTML页面跳转的几种方式(重定向)
  8. 图说报告|智能技术群的“核聚变”推动智能+时代到来
  9. 如何提高Solidworks运行速度
  10. Linux shell脚本文件的各种执行方式
  11. 盘点AI国际顶级会议
  12. 51单片机LCD1602实现计算器
  13. linux服务器如何查看mac地址,linux如何查看mac地址_查看mac地址 linux_linux查看mac地址...
  14. 随机游走模型 matlab,随机游走matlab程序
  15. 大话赛宁云 | 培训服务打造实战型网络安全人才
  16. Angular二级导航栏
  17. solr mysql dih_Solr结构化数据导入DIH
  18. Blocked a frame with origin “https://my.xxxxxxx.com“ from accessing a cross-origin frame.
  19. javascript鼠标点击实现改变CSS样式
  20. 亚马逊、速卖通、Lazada、eBay、自养号测评成本需要多少?

热门文章

  1. [CF765F] Souvenirs
  2. echarts图表使用以及图片转码
  3. 将VMware 虚拟磁盘文件vmdk直接挂到win系统下的方法
  4. 01-计算机原理基础
  5. 租房信息采集并做数据分析
  6. 密码学-计算机与网络空间安全概论
  7. HAN:Heterogeneous Graph Attention Network 算法理论
  8. Java获取当天零点零分时间的方法分享
  9. 防范ARP欺骗病毒攻击
  10. 关于android架构的英文资料,第十五期:英语流利说 Android 架构演进