Используя Python 3.12, Matplotlib 3.9.2,
С высоты h=20(м) бросьте объект A вверх с заданной скоростью. v и уроните объект B, чтобы он мог свободно упасть. Сопротивление воздуха пренебрежимо мало. Вычислите v так, чтобы объект A упал на землю dt = 2 секунды после объекта B, и анимируйте. g = 9,81 (м/с2)
Я пытался анимировать указанную проблему с помощью matplotlib, используя 'set_data', но результаты неудовлетворительны для предыдущих позиций A сохранено, из-за чего анимация через некоторое время перекрывалась. Я хочу, чтобы предыдущие данные были удалены, но я не смог найти никаких функций, которые могли бы помочь в этом.
Вот код, который я использовал:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
#Input Variables
h, g, dt= 20, 9.81, 2
#Calculated Variables
tmp = np.sqrt(2*h/g) + dt
v = 0.5*g*tmp - h/tmp
#Arrays
t = np.linspace(0, tmp , 100)
hA = h + v*t - 0.5*g*t**2
hB = h - 0.5*g*t**2
#Plot
fig, ax = plt.subplots()
plt.axis([0, 10, 0, 100])
ax.set_title("Physic 1")
plt.grid()
#Define object A and object B
A, = ax.plot([],[],"o",markersize=4,color="red")
B, = ax.plot([],[],"o",markersize=4,color="blue")
#Animation
def animate(frame):
A.set_data([2],hA[:frame])
B.set_data([6],hB[:frame])
return A,B
ani=FuncAnimation(fig, animate, frames=len(t)+2, interval=25, repeat =False)
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/791 ... ee-falling
Как я могу анимировать объект A, брошенный вверх с заданной высоты, а затем свободно падающий с помощью matplotlib? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение