Глава 5 · Давайте поиграем с числами!

Тригонометрия без страха

sin и cos — это просто координаты точки на окружности радиусом 1. Вся тригонометрия строится вокруг этой одной картинки.

Тригонометрия пугает многих не самой математикой, а обозначениями. На деле идея простая: для любой точки на окружности радиусом 1 (единичной окружности) координаты этой точки — это и есть cos и sin угла.

Градусы и радианы

Python (как и почти вся математика за пределами школьной геометрии) считает углы в радианах, не в градусах. Полный круг — это 360° или, что то же самое, радиан:

gradusy_radiany.py
import math

print(math.radians(180))    # 3.141592653589793 — то есть π
print(math.degrees(math.pi)) # 180.0
math.sin(90) — это НЕ то, что вы думаете
math.sin(90) считает синус угла в 90 радиан (это огромный угол, много полных оборотов), а не 90 градусов! Перед тригонометрическими функциями почти всегда нужен math.radians(): math.sin(math.radians(90)).

Единичная окружность

xy45°90°
Единичная окружность (радиус 1) — координаты точки равны (cos угла, sin угла)
edinichnaya_okruzhnost.py
import math

ugol_gradusy = 30
ugol_radiany = math.radians(ugol_gradusy)

print(round(math.cos(ugol_radiany), 3))   # 0.866 — координата x точки на окружности
print(round(math.sin(ugol_radiany), 3))   # 0.5   — координата y точки на окружности
round() здесь не случаен
Без round() math.sin(math.radians(30)) выдаёт 0.49999999999999994, а не ровно 0.5 — та же особенность float, которую мы разбирали в главе 4. Для сравнения углов тоже стоит использовать допуск (например, math.isclose()), а не ==.

tan() и обратные функции

tan_obratnye.py
import math

print(round(math.tan(math.radians(45)), 3))   # 1.0

# обратная задача: известен tan, ищем угол
ugol = math.degrees(math.atan(1))
print(ugol)   # 45.0
Практика: тригонометрия без страха
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →