Skrypt do pobrania: apple_sim.py

PY: Symulacja Masy Sprężystej

Ten artykuł wyjaśnia, jak działa skrypt symulujący ruch masy sprężystej pod wpływem grawitacji, wiatru oraz siły tarcia, z użyciem bibliotek Tkinter, Matplotlib i NumPy.

⚙️ Stałe fizyczne i warunki początkowe

g = 9.81 # Przyspieszenie ziemskie (m/s^2) m = 0.15 # Masa piłki (kg) restitution = 0.7 # Współczynnik sprężystości (odbicia) friction_coefficient = 0.5 # Współczynnik tarcia

Używamy podstawowych stałych z fizyki:

Siła grawitacji: ( F_g = m g )

Odbicie piłki od ziemi następuje z redukcją prędkości pionowej przez współczynnik sprężystości:

🧮 Obliczenia sił i przyspieszeń

Kod:

Fw = wind_force ax_acc = Fw / m ay_acc = -g

Zgodnie z II zasadą dynamiki Newtona:

Siła wiatru generuje przyspieszenie poziome:

Przyspieszenie pionowe jest równe przyspieszeniu ziemskiemu:

🧠 Kinematyka ruchu

vx += ax_acc * time_step vy += ay_acc * time_step x += vx * time_step + 0.5 * ax_acc * time_step**2 y += vy * time_step + 0.5 * ay_acc * time_step**2

Używamy podstawowych równań kinematyki:

🪨 Odbicie od ziemi i tarcie

if y <= y_min: vy = -vy * restitution if abs(vy) < 0.5: vx -= \dots \text{(siła tarcia)}

Siła tarcia kinetycznego:

📈 Wektory sił i wykresy

Kod rysuje wektory:

Grawitacji – zawsze w dół

Wiatru – poziomo

Prędkości – dynamicznie

draw_arrow(x, y, vx * scale, vy * scale, 'purple')

🧭 Wektory na wykresie biegunowym

draw_polar_arrow(polar_ax, angle, magnitude, color)

Ten fragment przelicza wartości sił i prędkości do współrzędnych biegunowych. Dzięki temu użytkownik może obserwować ich kierunki i względne wartości.

📊 Wykresy prędkości i przyspieszenia

current_speed = np.sqrt(vx**2 + vy**2) net_acc = np.sqrt(ax_acc**2 + ay_acc**2)

Wartości te są dodawane do list i rysowane w czasie rzeczywistym.

🧵 Podsumowanie

Ten skrypt to przykład dynamicznej symulacji ruchu w dwuwymiarowym polu sił, uwzględniającej:

Grawitację

Wiatr jako siłę zewnętrzną

Sprężystość przy zderzeniu z podłożem

Tarcie dynamiczne przy niskiej prędkości

Dzięki interfejsowi graficznemu użytkownik może manipulować parametrami i obserwować efekty fizyczne w czasie rzeczywistym.