Rozdział 5 · Pobawmy się liczbami!
Trygonometria bez strachu
sin i cos to po prostu współrzędne punktu na okręgu o promieniu 1. Cała trygonometria opiera się na tym jednym obrazku.
Trygonometria przeraża wielu ludzi nie samą matematyką, lecz notacją. W rzeczywistości idea jest prosta:
Dla dowolnego punktu na okręgu o promieniu 1 (okrąg jednostkowym), współrzędne tego punktu są
I jest cos oraz sin róg.
Stopnie i radiany
Python (jak prawie cała matematyka poza szkolną geometrią) liczy kąty w
radiany, nie w stopniach. Pełny obrót to 360° lub, co jest tym samym,
2π radianów:
gradusy_radiany.py
import math
print(math.radians(180)) # 3.141592653589793 — czyli π
print(math.degrees(math.pi)) # 180.0
math.sin(90) NIE jest tym, co myślisz
math.sin(90) liczy sinus kąta na poziomie 90 radiany (to ogromny kąt, wiele pełnych obrotów), nie 90 stopni! Przed funkcjami trygonometrycznymi prawie zawsze potrzebujesz math.radians(): math.sin(math.radians(90)).Unit Circle
edinichnaya_okruzhnost.py
import math
ugol_gradusy = 30
ugol_radiany = math.radians(ugol_gradusy)
print(round(math.cos(ugol_radiany), 3)) #0,866 to współrzędna x punktu na okręgu
print(round(math.sin(ugol_radiany), 3)) # 0.5 — współrzędna y punktu na okręgu
round() tutaj nie jest przypadkiem
Bez
round() math.sin(math.radians(30)) wydaje 0.49999999999999994, nie równomiernie 0.5 — ta sama cecha float, którą omawialiśmy w rozdziale 4. Do porównania kątów również warto użyć tolerancji (na przykład, math.isclose()), nie ==.tan() i funkcje odwrotne
tan_obratnye.py
import math
print(round(math.tan(math.radians(45)), 3)) # 1.0
# problem odwrotny: znane tan, szukanie kąta
ugol = math.degrees(math.atan(1))
print(ugol) # 45.0
Praktyka: Trygonometria bez strachu
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji