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()
python 三维地球_用python生成地球运动的动态模拟动态图相关推荐
- 用python画地球_用Python实现让微信地球转起来附代码!
微信地球 手机重启后打开微信的一瞬间,会看到一幅有名的图片. 大概是站在月亮上看地球的效果. 你有没有想过,如果上面那个地球转起来会是怎样? 素材 这里有两个表面素材,一个是地球表面素材,一个是云图素 ...
- python三维曲面拟合_用Python拟合多项式曲面
现在,两年后,我可以解决这个问题: 这是一个具有多项式特征的经典回归问题,其中输入变量排列在网格中.在下面的代码中,我手动计算了我需要的多项式特征,分别是这些特征,它们将解释我的目标变量.在impor ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python动态图形_用python生成地球运动的动态模拟动态图
python作为一门简单易学且应用范围极广的语言有着其他语言无法比拟的优势,通过python可以实现各种各样的功能,例如我们可以利用python matplotlib的绘图库实现各种动态模拟仿真,在科 ...
- python 三维地球代码_如何用两行代码实现三维地球的构建?
本文首发于公众号LocaSpaceViewer,原文链接:如何用两行代码实现三维地球的构建? 一.为什么要用三维地球? 三维地球是地理信息系统的重要组成部分,相比较二维平面图,三维地球最大的特点是更直 ...
- python绘制动态模拟图-用python生成地球运动的动态模拟动态图
python作为一门简单易学且应用范围极广的语言有着其他语言无法比拟的优势,通过python可以实现各种各样的功能,例如我们可以利用python matplotlib的绘图库实现各种动态模拟仿真,在科 ...
- 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法_2017108489397_说明书_专利查询_专利网_钻瓜专利网...
技术领域 本发明涉及一种三维肢体活动角度算法,特别是涉及一种基于Python的步态周期及三维肢体活动角度算法. 背景技术 肢体活动角度(ROM,Range of Motion)是指人体在运动时的肢体活 ...
- python 三维地球代码_C#两行代码实现三维地球
一.为什么要用三维地球? 三维地球是地理信息技术的一个重要发展方向,相比较二维地图技术,三维地球最大的特点是更直观更形象地表达地理信息和空间上的方位.我们可以在三维气象模拟.三维虚拟旅游等应用中体验到 ...
最新文章
- R构建朴素贝叶斯分类器(Naive Bayes Classifier)
- Android Binder 学习笔记
- python语言:装饰器原理
- awk是命令还是编程语言
- ICCV 2019 | 厦大提出快速NAS检索方法,四小时搜索NN结构
- linux 家目录没有了,linux刀片服务器断电重启以后home目录下的用户文件夹丢失了...
- java list填入table_JavaFX从ObservableList填充TableView
- 随机生成验证码(JAVA代码)
- 红蓝对抗之win10 权限提升
- Kali Linux 2022下载
- 自动整理html书签,技巧:使用 Excel 快速整理重复书签丨Matrix 精选
- [单片机框架][bsp层][AT32F415][bsp_tim] tim定时器配置和使用
- 字节跳动加持游戏产业-千氪
- linux yield_带你通俗易懂的了解——Linux线程模型和线程切换
- Qt实现一个简单的编译器(软件生成器)
- 2021-07-13 BIYAO项目总结!!!
- MATLAB求解复系数特征方程的实数根的方法
- 基于Python的视频中的人脸识别系统设计与实现
- 对于Linux基础网络设置
- CodeForces 158B Taxi(代数算式解题)
热门文章
- kubernetes中mysql乱码_在kubernetes中部署tomcat与mysql集群-Go语言中文社区
- 机器学习的练功方式(四)——KNN算法
- mysql5.6.24怎么打开_mysql 5.6.24 安装配置方法图文教程
- ctr多少正常_亚马逊广告ctr多少才算合格,如何提升亚马逊CTR
- wordpress 删除自定义字段
- 实例讲解getopt()函数的使用
- 如何通过Maven的Jetty插件运行Web工程
- SecureCRT无法登录Ubuntu
- 微信小程序request请求封装;微信小程序封装request请求;uni-app小程序封装request请求;
- World Token钱包官网骗局模式,是传销吗?