Verwenden der ArtistAnimation-Methode von matplotlib, Die Bewegung eines Objekts, das eine parabolische Bewegung ausführt, wird mit einer Flugbahn angezeigt. Hier wurde ** eine Methode verwendet, um zwei Bilder des Ortsbereichs und des sich bewegenden Teils des Objekts überlappend anzuzeigen **. ** Es ist eine einfache und einfache Art zu denken, aber es kann nützlich sein, wenn Sie eine schnelle Visualisierung wünschen. .. ** **.
** Es handelt sich um ein vertikales Wurfproblem in Richtung des gleichmäßigen Schwerefelds in Richtung $ y $ und Richtung $ \ theta $. ** **.
Wenn die Zeit $ t = 0 $ ist, die Position des Qualitätspunktes $ (x_0, y_0) $ ist und die Größe der Anfangsgeschwindigkeit $ V_0 $ ist, dann sind die Qualitätspunkte $ x (t) $ und $ y (t) zum Zeitpunkt $ t $. ) $ Koordinaten sind wie folgt. Die Bewegung dieses Qualitätspunktes zeichnet eine parabolische Linie.
Setzen Sie in diesem Problem $ V_0 = 100 $ m / s, $ (x_0, y_0) = (0, 0) $, $ \ theta = \ pi / 4 $ (= 45 Grad), um die Bewegung des Qualitätspunkts zu zeichnen. ..
locus.py
"""
Animierte parabolische Bewegung mit einer Flugbahn
Animation with a locus
"""
import matplotlib.pyplot as plt
%matplotlib nbagg # Jupyter-Hinzufügen, wenn Animation im Notizbuch angezeigt wird
from matplotlib.animation import ArtistAnimation #Importieren Sie Methoden zum Erstellen von Animationen
import numpy as np
fig = plt.figure()
anim = [] #Eine Liste zum Speichern der Daten des für die Animation gezeichneten Para-Para-Diagramms
tt = np.arange(0,15,0.5) #Zeiteinstellung für das Zeichnen: t=0 von 0 bis 15.In 5 Schritten.
x_all=[] #Liste zum Speichern von Daten an allen x Positionen
y_all=[] #Liste zum Speichern von Daten aller y-Positionen
#Anfangsbedingungen einstellen
V0 =100 #Die Größe der Anfangsgeschwindigkeit: 100 m/s
theta=np.pi/4
x0=0 #Ausgangsposition: x=0
y0=0 #Ausgangsposition: y = 0
g=9.8 #Schwerkraftkonstante[m/s^2]
for t in tt:
x= [V0*np.cos(theta)*t+x0] # x(t)Beschreibung von
y = [-( g/2)*t**2+V0*np.sin(theta)*t+y0] # y(t)Beschreibung von
x_all.append(x[0]) #Speichert Daten jeden Moment von x
y_all.append(y[0]) #Speichern Sie Daten jeden Moment von y
#Erstellen Sie zwei Bilder, den Qualitätspunkt zum Zeitpunkt t und den Bewegungsort bis zum Zeitpunkt t, und speichern Sie sie zur Animation in der Liste.
im=plt.plot(x,y,'o', x_all,y_all, '--', color='red',markersize=10, linewidth = 2, aa=True)
anim.append(im)
anim = ArtistAnimation(fig, anim) #Animationserstellung
#Zeichnen Sie Anpassungen
plt.xlabel('X',fontsize=18) #
plt.ylabel('Y',fontsize=18)
plt.xlim(0, 1100)
plt.ylim(-10,300)
plt.hlines([0], 0, 2000, linestyles="-") # y=Zeichnen Sie eine Linie bei 0.
fig.show()
anim.save("t.gif", writer='imagemagick') #Animation.Speichern Sie es als GIF und erstellen Sie eine GIF-Animationsdatei.
Eine Animation der Bewegung des Pfandes bei einer Anfangsgeschwindigkeit von 100 m / s in einer schrägen Richtung von 45 Grad mit einer Flugbahn.
August 2017: ** Masse m in y (t) entfernt **. Vielen Dank an T_Shinaji für den Hinweis!
August 2017: Geändert von anim.save ("t.gif") zu ** anim.save ("t.gif", writer = 'imagemagick') **. Vielen Dank an yoddy für den Hinweis!
Für Künstleranimation, chez_sugis Animation mit matplotlib Ich durfte mich beziehen.
Recommended Posts