国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
python3的matplotlib的模擬太陽-地球-月亮運動示意圖代碼分析

1.太陽系

2.用python的matplotlib模擬太陽-地球-月亮,順帶學(xué)習(xí)相關(guān)知識,難點在他們之間的函數(shù)關(guān)系,可以自己百度,重點在python和matplotlib的作圖熟悉上。

3.條件:

本機是python3.8,應(yīng)該python3.5都可以吧?

4.第1步:這里要求中文設(shè)置,所以也復(fù)習(xí)matplotlib的中文設(shè)置。

#---第1步---導(dǎo)出模塊---import numpy as npimport matplotlib as mplfrom matplotlib import pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.animation as animmation#導(dǎo)出通用字體設(shè)置from matplotlib import font_manager #定義引出字體模塊、位置、大小my_font = font_manager.FontProperties(fname='hwfs.ttf',size=20)

5.第2步:

#---第2步---初始化定義---#r1的大小與月球的速度和距離地球距離有關(guān),越大越不好,建議10r1 = 10#r2是月球與地球的半徑大小r2 = 2#π=圓周率(Pai)是圓的周長與直徑的比值#omega1=2π是一個圓,是地球的運動一圈;1×π=為半圓。omega1 = 2 * np.pi#定義omega2為幾個π,與月球的公轉(zhuǎn)速度有關(guān)#建議24π=代表月球以地球公轉(zhuǎn)的一圈分12部分,12 12半圈#比如48π=24 24半圈,即將地球繞太陽一圈在分24部分,月球自轉(zhuǎn)和公轉(zhuǎn)的速度也加快omega2 = 48 * np.pi#月球自轉(zhuǎn)和公轉(zhuǎn)的角度與地球公轉(zhuǎn)的水平夾角phi = 5 * np.pi / 180 

6.第3步:

#---第3步---更新函數(shù)定義---def update(data): #聲明為全局變量 global line1, line2 , line3 #地球公轉(zhuǎn)運動的更新 line1.set_data([data[0], data[1]]) line1.set_3d_properties(data[2]) #月球運動更新 line2.set_data([data[3], data[4]]) line2.set_3d_properties(data[5]) #月球自轉(zhuǎn)線的更新 line3.set_data([data[6], data[7]]) line3.set_3d_properties(data[8]) return line1,line2,line3,

7.第4步:

#---第4步---初始化框架---def init():    global line1, line2, line3    ti = 0    t = t_drange[np.mod(ti, t_dlen)]    xt1 = x0   2*r1 * np.cos(omega1 * t)    yt1 = y0   2*r1 * np.sin(omega1 * t)    zt1 = z0   0    xt2 = xt1   2*r2 * np.sin(omega2 * t)    yt2 = yt1   2*r2 * np.cos(omega2 * t)/(np.cos(phi) * (1   np.tan(phi) ** 2))    zt2 = zt1   (yt2 - yt1) * np.tan(phi)    xt21 = xt1   r2 * np.sin(2 * np.pi * t_range)    yt21 = yt1   r2 * np.cos(2 * np.pi * t_range)/(np.cos(phi) * (1   np.tan(phi) ** 2))    zt21 = zt1   (yt21 - yt1) * np.tan(phi)    #地球位置、形狀、顏色、大小設(shè)置    line1, = ax.plot([xt1], [yt1], [zt1], marker='o', color='blue',markersize=20)    #月球位置、形狀、顏色、大小設(shè)置    line2, = ax.plot([xt2], [yt2], [zt2], marker='o', color='orange',markersize=12)    #月球繞地球的軌跡線和顏色purple=紫色    line3, = ax.plot(xt21, yt21, zt21, color='purple')    return line1,line2,line3,

8.第5步:

#---第5步---運動數(shù)據(jù)的產(chǎn)生---def data_gen(): global x0,y0,z0,t_dlen data = [] for ti in range(1,t_dlen): t = t_drange[ti] xt1 = x0 r1 * np.cos(omega1 * t) yt1 = y0 r1 * np.sin(omega1 * t) zt1 = z0 xt2 = xt1 r2 * np.sin(omega2 * t) yt2 = yt1 r2 * np.cos(omega2 * t)/(np.cos(phi) * (1 np.tan(phi) ** 2)) zt2 = zt1 (yt2 - yt1) * np.tan(phi) xt21 = xt1 r2 * np.sin(2 * np.pi * t_range) yt21 = yt1 r2 * np.cos(2 * np.pi * t_range)/(np.cos(phi) * (1 np.tan(phi) ** 2)) zt21 = zt1 (yt21 - yt1) * np.tan(phi) data.append([xt1, yt1, zt1, xt2, yt2, zt2, xt21, yt21, zt21]) return data

9.第6步:

#---第6步---定義取值范圍0~10,每個0.005取#地球公轉(zhuǎn)的軌跡線刻度,越小越好,建議0.005,否則軌跡線不是圓形,有鋸齒樣類圓形t_range = np.arange(0, 10   0.005, 0.005)#地球公轉(zhuǎn)速度,越大速度越大,建議0.005,t_drange = np.arange(0,10, 0.005 )t_len = len(t_range)t_dlen = len(t_drange)

10.第7步:

#---第7步---三大星球的大小、顏色、坐標(biāo)---#太陽的坐標(biāo)位置,三維坐標(biāo)x0 =y0=z0= 0#地球的運動中的坐標(biāo)x1 = x0 r1 * np.cos(omega1 * t_range)y1 = y0 r1 * np.sin(omega1 * t_range)z1 = z0 np.zeros(t_len)

11.第8步:

#---第8步---定義圖片f和ax等---#窗口大小也就是展示圖片的畫布大?。?2=2200,14=1400,即2200×1400#這是窗口的背景顏色,有區(qū)別,默認(rèn)白色f = plt.figure(figsize=(22,14),facecolor='black',edgecolor='white')#這是畫布的背景顏色,默認(rèn)白色ax  = f.add_subplot(111,projection='3d',facecolor='black')

12.第9步:

#---第9步---太陽和地球軌跡線設(shè)置---#太陽的設(shè)置顏色,位置,大小ax.plot([0], [0], [0], marker='o', color= 'red', markersize=100)#地球公轉(zhuǎn)的軌跡線和顏色g=green=綠色,三維坐標(biāo)ax.plot(x1, y1, z1, 'g')

13.第10步:

#---第10步---圖片的坐標(biāo)刻度設(shè)置---#坐標(biāo)軸刻度雖然不顯示,但刻度的標(biāo)記對整個圖形有一定的拉伸影響#x坐標(biāo)軸刻度范圍ax.set_xlim([-(r1   2), (r1   2)])#y坐標(biāo)軸刻度范圍ax.set_ylim([-(r1   5), (r1   5)])#z坐標(biāo)軸刻度范圍ax.set_zlim([-15, 15])

14.第11步:

#---第11步---圖片標(biāo)題等設(shè)置---#圖示的標(biāo)題#動畫走起,f圖片掛起動畫里,不斷更新,interval = 20=數(shù)值越小,速度越快ani = animmation.FuncAnimation(f, update, frames = data_gen(), init_func = init,interval = 20)#坐標(biāo)及其刻度隱藏plt.axis('off')#圖片標(biāo)題、字體、顏色plt.title(u'太陽-地球-月亮模擬示意圖', fontproperties=my_font,color='r')#圖片展現(xiàn)plt.show()

15.效果圖:

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
模擬太陽系8大行星運行圖:matplotlib實現(xiàn)
UG通過表達式創(chuàng)建空間曲線的方法
120種UG表達式曲線畫法(阿基米德螺旋線、數(shù)學(xué)方程式)
UG 常用曲線方程式
有一對幼兔,幼兔1個月后長成小兔,小兔1個月后長成成兔并生下一對幼兔,問8個月后有多少對兔子,幼兔、小兔、成兔對數(shù)分別是多少。
用Python動畫來展示二階貝賽爾曲線
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服