日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/10 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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生成地球运动的动态模拟动态图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。