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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

matplotlib.animation 万有引力

發(fā)布時(shí)間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matplotlib.animation 万有引力 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from scipy import constants as const ''' 萬(wàn)有引力公式 F = G*m1*m2/r^2 兩球質(zhì)量固定,r可以用橫縱坐標(biāo)計(jì)算 兩球移動(dòng)的加速度a = F/m 移動(dòng)速度等于 v = v + at 分解為x軸,y軸速度 '''fig,ax = plt.subplots() dot1, = ax.plot([], [], 'ro') dot2, = ax.plot([], [], 'bo') m1 = 10 m2 = 20 G = const.G print(G) #兩小球最初的位置 x_data = [5,60] y_data = [5,50] v1_x = v1_y = 0 v2_x = v2_y = 0 def init():# 設(shè)置橫縱軸范圍ax.set_xlim(0, 100)ax.set_ylim(0, 60)# 移位置 設(shè)為原點(diǎn)相交ax.xaxis.set_ticks_position('bottom') # 設(shè)置為底部ax.spines['bottom'].set_position(('data', 0)) # 獲取底部軸設(shè)置其位置,表示設(shè)置底部軸移動(dòng)到豎軸的0坐標(biāo)位置ax.yaxis.set_ticks_position('left')ax.spines['left'].set_position(('data', 0))return ax # 畫(huà)軌跡的話,將它改為ldef get_location():global v1_x,v1_y,v2_x,v2_y#每秒更新一次所以t為1while(x_data[0] <= x_data[1]): #沒(méi)重合的時(shí)候r = ((x_data[1] - x_data[0]) ** 2 + (y_data[1] - y_data[0]) ** 2) ** 0.5F = G * m1 * m2 / r / ra1 = F / m1a2 = F / m2#計(jì)算加速度在x,y軸上的分解a1_x = a1 * (x_data[1] - x_data[0])/ra1_y = a1 * (y_data[1] - y_data[0])/ra2_x = a2 * (x_data[1] - x_data[0])/ra2_y = a2 * (y_data[1] - y_data[0])/r#計(jì)算新的位置v1_x += a1_xv1_y += a1_yv2_x += a2_xv2_y += a2_yx_data[0] = x_data[0] + v1_xx_data[1] = x_data[1] - v2_xy_data[0] = y_data[0] + v1_yy_data[1] = y_data[1] - v2_ynewDate = [x_data,y_data]print(newDate)yield newDatedef update(frame):dot1.set_data(frame[0][0],frame[1][0])dot2.set_data(frame[0][1],frame[1][1])return dot1,dot2ani = FuncAnimation(fig, update, frames=get_location, interval=1000, init_func=init) ani.save('gravitation_dot.gif', writer='pillow', fps=30)

?可以看到橫縱坐標(biāo)幾乎是不變的,嘗試把質(zhì)量增大,也幾乎是不變的

好像沒(méi)什么卵用,直接給引力常量成個(gè)10的11次方加大點(diǎn)看著玩吧

可以發(fā)現(xiàn)質(zhì)量小的球,也就是紅球,移動(dòng)了更遠(yuǎn)的距離。

?

總結(jié)

以上是生活随笔為你收集整理的matplotlib.animation 万有引力的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。