arrow_back Powrót do aplikacji

Symulacja rzutu piłką

WPROWADZENIE

Rzucając piłką zastanawiamy się jak daleko poleci oraz na jaką wysokość się wzniesie. Zarówno odległość jak i wysokość zależą od wielu czynników, np:

  • prędkość początkowa,
  • przyspieszenie grawitacyjne,
  • kąt rzutu,
  • opór powietrza,
  • siła i kierunek wiatru.

Jeśli pominiemy wiele czynników oraz przyjmiemy dość uproszczony model, będziemy mogli przeprowadzić eksperyment.

Jeśli weźmiemy pod uwagę jedynie:

  • przyspieszenie ziemskie jako stałą grawitacyjną $g=9,8 \frac{m}{s^2}$,
  • prędkość początkową (prędkość, z którą piłka jest wyrzucana) w m/s,
  • kąt rzutu w stopniach

to możemy:

  1. ze wzoru $s=\frac{v^2 \cdot sin 2\alpha}{g}$ wyznaczyć odległość rzutu,
  2. ze wzoru  $h=\frac{v^2 \cdot sin^2 \alpha}{2g}$ wyznaczyć maksymalną wysokość jaką osiągnie piłka.

gdzie:

  • $v$ – prędkość początkowa
  • $\alpha$ – kąt rzutu (w radianach)
  • $g$ – stała grawitacyjna – przyspieszenie ziemskie

Możemy przeprowadzić symulację, jak będzie zmieniać się odległość i wysokość rzutu, jeśli będziemy zmieniać kąt rzutu. 

Oczywistym jest, że jeśli:

  • kąt początkowy jest mały, to zarówno wysokość, jak i odległość jest niewielka – rzucamy prawie płasko, więc piłka nie wzniesie się wysoko oraz nie poleci daleko,
  • kąt początkowy jest duży (rzucamy prawie pionowo), to może i wysokość będzie duża, ale odległość mała.

Jak więc dobrać kąt, żeby odległość była największa?


KOD W JĘZYKU PYTHON

Zobacz w Google Colaboratory


JAK DZIAŁA PROGRAM?

  1. Importuje moduł math, który jest potrzebny do wykonywania operacji matematycznych.
  2. Definiuje dwie funkcje:
  3. oblicz_odleglosc_rzutu(predkosc_poczatkowa, kat): Oblicza odległość rzutu dla podanej prędkości początkowej i kąta rzutu. Wykorzystuje wzór d = (v^2 * sin(2θ)) / g, gdzie v to prędkość początkowa, θ to kąt w radianach, a g to przyspieszenie ziemskie.
  4. oblicz_wysokosc_rzutu(predkosc_poczatkowa, kat): Oblicza maksymalną wysokość osiągniętą podczas rzutu dla podanej prędkości początkowej i kąta rzutu. Wykorzystuje wzór h = (v^2 * sin(θ)^2) / (2 * g), gdzie v to prędkość początkowa, θ to kąt w radianach, a g to przyspieszenie ziemskie.
  5. Pobiera od użytkownika prędkość początkową w metrach na sekundę.
  6. Inicjalizuje puste listy odleglosci i wysokosci, które będą przechowywać obliczone odległości i wysokości dla różnych kątów.
  7. Iteruje po kątach od 5 do 80 (włącznie) z krokiem 5:
  8. Oblicza odległość rzutu i maksymalną wysokość dla każdego kąta, korzystając z odpowiednich funkcji.
  9. Dodaje obliczone wartości do odpowiednich list.
  10. Wyświetla nagłówek tabeli, który zawiera nazwy kolumn: „Kąt (stopnie)”, „Odległość (m)”, „Maks. wysokość (m)”.
  11. Iteruje po indeksach elementów list odleglosci i wysokosci przy użyciu funkcji range i len, aby określić liczbę elementów:
  12. Formatuje każdą odległość i wysokość do dwóch miejsc po przecinku i zamienia kropkę na przecinek.
  13. Wyświetla każdy kąt, odległość i wysokość w odpowiednim formacie, używając odpowiednich odstępów i tabulacji.
  14. Program kończy działanie, a na ekranie zostaje wyświetlona tabela z kątami, odległościami i maksymalnymi wysokościami, na podstawie wprowadzonej przez użytkownika prędkości początkowej.
arrow_back Powrót do aplikacji