Ce face math.sin(), cos(), tan(), asin(), acos(), atan(), atan2()
sin, cos și tan primesc unghiul în radiani, nu în grade. Transformă gradele cu math.radians(). Inversele asin, acos, atan returnează unghiul în radiani; asin și acos acceptă doar valori între -1 și 1.
atan2(y, x) dă unghiul punctului (x, y) față de axa orizontală, între -π și π, ținând cont de cadran. Este alegerea corectă pentru direcții și unghiuri între puncte, în loc de atan(y / x).
Parametri
| Parametru | Descriere |
|---|---|
x |
Unghiul în radiani (sau valoarea, la funcțiile inverse). |
y, x |
Pentru atan2: coordonatele punctului. |
Ce returnează
Un float.
Exemple
Exemplul 1: Unghiuri în grade
import math
for grade in [0, 30, 45, 90]:
r = math.radians(grade)
print(grade, round(math.sin(r), 4), round(math.cos(r), 4))
print(round(math.tan(math.radians(45)), 10))
print(math.degrees(math.asin(0.5)), math.degrees(math.acos(0)), math.degrees(math.atan(1)))
Rezultat
0 0.0 1.0
30 0.5 0.866
45 0.7071 0.7071
90 1.0 0.0
1.0
29.999999999999996 90.0 45.0
Exemplul 2: Direcția spre un punct cu atan2
import math
for x, y in [(1, 1), (-1, 1), (-1, -1), (0, -2)]:
print((x, y), round(math.degrees(math.atan2(y, x)), 1))
Rezultat
(1, 1) 45.0
(-1, 1) 135.0
(-1, -1) -135.0
(0, -2) -90.0
Greșeli frecvente
- Dai unghiul în grade:
math.sin(30)nu este 0.5. Scriemath.sin(math.radians(30)). - Te aștepți ca
math.cos(math.radians(90))să fie exact 0. Rezultatul este6.12e-17, din cauza preciziei; rotunjește la afișare.
Comenzi înrudite
math.degrees() și math.radians(): Transformă unghiurile din radiani în grade și invers.math.sinh(), cosh(), tanh() și inversele lor: Funcțiile hiperbolice și inversele lor.math.pi, e, tau, inf și nan: Constantele matematice ale modulului math: π, e, τ, infinit și „nu este număr”.math.hypot() și math.dist(): Lungimea unui vector (ipotenuza) și distanța euclidiană dintre două puncte.