python 三维地球_用python生成地球运动的动态模拟动态图

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xmlhttprequest level 2

http://caniuse.com/xhr2转载于:https://www.cnblogs.com/fullhouse/archive/2012/04/24/2468892.html

tomcat常用功能

修改端口号 1024-655365 之间取端口号 Tomcat有3个重要端口&#xff1a; 默认访问端口&#xff1a;8080 默认监听关闭tomcat的端口&#xff1a;8005 默认AJP访问端口&#xff1a;8009 vim tomcat/conf/server.xml<Server port"8005" shutdown"SHUTDOWN&quo…

[html] 可以给内联元素设置宽和高吗?为什么?

[html] 可以给内联元素设置宽和高吗&#xff1f;为什么&#xff1f; 1.正常情况下不能设置宽高(可替换内容元素除外例如img)2.元素被浮动&#xff0c;绝对定位&#xff0c;固定定位后&#xff0c;可以设置宽高3.display:block,display:inline-block等后可以设置宽高4.内联元素的…

cve20190708补丁的kb名称_微软KB4495667补丁(CVE 2019-0708补丁)V1.1 官方版

微软KB4495667补丁(CVE 2019-0708补丁)是一款很优秀好用的微软升级补丁工具。这款微软KB4495667补丁是针对2019年新发现的Windows系统漏洞CVE-2019-0708的Windows修补程序。此漏洞很可能被新的勒索软件利用&#xff0c;但您只需下载此修补程序即可安装它。欢迎有需要的朋友来下…

enterFrame是什么意思?

影片剪辑脚本和按钮的脚本类似&#xff0c;它们都使用事件处理函数&#xff0c;与按钮的on关键字不同&#xff0c;影片剪辑使用 onClipEvent关键字。当某种影片剪辑事件发生时&#xff0c;就会触发相应的事件处理函数。影片剪辑最重要的两种事件是load和enterFrame&#xff0c;…

python网站模板下载_Python画图模板大全:从此画图不用愁

1、matplotlib具体参数介绍&#xff1a; 在介绍Python画图模板之前&#xff0c;先买个和大家卖个官司&#xff0c;首先介绍一下Python画图常用库matplotlib的参数&#xff0c;如果只介绍模板&#xff0c;如果你想改一些参数&#xff0c;首先要知道各个参数的含义&#xff0c;那…

tomcat多域名访问

多域名访问 配置虚拟主机&#xff0c;提高资源利用率。 tomcat的server.xml文件也可以配置多个虚拟主机&#xff0c;基于端口可以通过增加service节点实现&#xff0c;基于域名则可以同过增加host节点实现 基于域名的虚拟机 #编辑server.xml文件&#xff0c;在Engine段下添加Ho…

[html] 如何解决input在Firefox和Chrome中高度不一致的问题?

[html] 如何解决input在Firefox和Chrome中高度不一致的问题&#xff1f; 原因是firefox的input的border-width padding 受win10系统的文本大小设置影响设置一样的样式input{box-sizing:border-box;height:20px;}将win10 系统的文本大小设置为100%个人简介 我是歌谣&#xff0c…

工业机器人工具中心点标定的意义_如何理解工业机器人的工具中心点

工业现场的机器人实际上是有多个轴的机械手臂。要想让机器人完成指定的生产任务&#xff0c;通常需要在机器人的末端固定一个工具&#xff0c;比如焊接机器人的焊枪、涂胶机器人的胶枪、搬运机器人的夹具等。由于各工具的大小、形状各不相同&#xff0c;这样就产生一个问题&…

学习:重写hashCode()方法的必要性

当一个类有可能会和其他类发生比较的时候&#xff0c;我们会重写equals方法&#xff0c;但大多数情况下&#xff0c;都忽略了重写hashCode方法。 这里说一下重写hashCode的必要性。 当我们使用HashSet或者HashMap的时候&#xff0c;在比对value|key是否存在时&#xff0c;会调用…

python利用缩进写模块_Python之缩进块

MySQL主从复制、半同步复制和主主复制概述 http://www.cnblogs.com/zping/p/5275531.html 17 任务调度相关类综述——Live555源码阅读&lpar;一&rpar;任务调度相关类 这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本…

二进制安装mysql-5.7.26

一、上传二进制 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz包 #/data 是数据盘 自己根据情况定 [rootVM_0_10_centos data]# pwd/datatar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.26-linux-glibc2.12-x86_64 mysql #做软连接 ln -s /data/mysql /usr/lo…

[html] 块级元素不能包含其他块级元素有那些?

[html] 块级元素不能包含其他块级元素有那些&#xff1f; 嵌套规则&#xff1a;块级元素可以包含内联元素或某些块级元素&#xff0c;但内联元素不能包含块级元素&#xff0c;它只能包含其它内联元素。块级元素不能放在p里面。有几个特殊的块级元素只能包含内联元素&#xff0…

自组网中继台_同频自组网基站

随着社会的发展&#xff0c;应急处置部门对专网无线通讯的需求越来越强烈&#xff0c;优秀的无线通信系统能够帮助应急救援部门快速反应、高效工作。除了在城市等固定地区的无线通信外&#xff0c;应急救援部门在山区、丛林、荒漠、隧道、地下室等场景下的通讯一样非常重要。但…

INF DestinationDirs Section

INF DestinationDirs Section INF DestinationDirs Section格式如下&#xff1a; [DestinationDirs] [DefaultDestDirdirid[,subdir]] [file-list-sectiondirid[,subdir]]... 描述&#xff1a;该域记录了在INF文件的其他域中引用的需要复、删除、重命名的文所在的目录。 Defau…

python给矩阵赋值_解决Python二维数组赋值问题

解决Python二维数组赋值问题 当我们采用s[[0]*3]*2初始化一个数组&#xff0c;然后对s[0][0]进行赋值&#xff0c;改变的是第一列所有的值。因为用s [[0]*3]*2 初始化数组&#xff0c;他表示的是指向这个列表的引用&#xff0c;所以当你修改一个值的时候&#xff0c;整个列表都…

[html] a标签可以再嵌套a标签吗?为什么?如果不行,那又想要嵌套效果怎么解决呢?

[html] a标签可以再嵌套a标签吗&#xff1f;为什么&#xff1f;如果不行&#xff0c;那又想要嵌套效果怎么解决呢&#xff1f; a标签不能嵌套a标签<a href"https://www.baidu.com/" class"parent">点击父级标签<a href"https://www.baidu.c…

mysq5.7 主主同步

db01 172.21.0.10 db02 172.21.0.14 一、安装数据库看上一遍博客 修改配置文件 db01 172.21.0.10 [rootVM_0_10_centos mysql]# cat /etc/my.cnf [mysqld] port3306 character-set-serverutf8 basedir/usr/local/mysql datadir/usr/local/mysql/data #innodb_buffer_pool_…

代码整洁之道 python_Python代码整洁之道:编写优雅的代码

译者序前言致谢关于作者关于技术审校者第1章 关于Python的思考11.1 编写Python代码11.1.1 命名21.1.2 代码中的表达式和语句51.1.3 拥抱Python编写代码的方式81.2 使用文档字符串141.2.1 模块级文档字符串171.2.2 使类文档字符串具有描述性171.2.3 函数文档字符串181.…

python猜数字游戏实例_Python案例:猜数字小游戏,由浅入深!

本案例只适合新手&#xff0c;老司机请绕路。 游戏介绍&#xff1a;程序自己有一个数字&#xff0c;用户输入一个数字&#xff0c;两个数字进行比较。 可以学到的知识点&#xff1a;input函数、字符串、while循环、if条件判断语句、break语句。 一、 简单版 猜数字游戏&#xf…