Ce face sin
sin, cos și tan din dart:math primesc unghiul în radiani. Un cerc complet are 2π radiani, deci gradele se transformă cu grade * pi / 180.
Rezultatele sunt double și pot avea mici erori de rotunjire: cos(pi / 2) nu dă exact 0, ci 6.123233995736766e-17. Rotunjește cu toStringAsFixed când afișezi.
Pentru funcțiile inverse există asin, acos, atan și atan2; toate returnează radiani.
Parametri
| Parametru | Descriere |
|---|---|
radiani |
Unghiul, în radiani. |
Ce returnează
Un double (sinusul, cosinusul sau tangenta unghiului).
Exemple
Exemplul 1: Valori pentru unghiuri cunoscute
import 'dart:math';
double rad(num grade) => grade * pi / 180;
void main() {
for (final g in [0, 30, 45, 60, 90]) {
print('$g°: sin=${sin(rad(g)).toStringAsFixed(4)} '
'cos=${cos(rad(g)).toStringAsFixed(4)}');
}
print(cos(pi / 2));
print(tan(rad(45)).toStringAsFixed(4));
}
Rezultat
0°: sin=0.0000 cos=1.0000
30°: sin=0.5000 cos=0.8660
45°: sin=0.7071 cos=0.7071
60°: sin=0.8660 cos=0.5000
90°: sin=1.0000 cos=0.0000
6.123233995736766e-17
1.0000
Exemplul 2: Înălțimea unui copac din unghiul de privire
Stai la 20 m de copac și îi vezi vârful sub un unghi de 35°. Înălțimea este distanța × tan(unghi).
import 'dart:math';
void main() {
const distanta = 20.0;
const unghi = 35.0;
final inaltime = distanta * tan(unghi * pi / 180);
print('Copacul are aproximativ ${inaltime.toStringAsFixed(1)} m.');
}
Rezultat
Copacul are aproximativ 14.0 m.
Exemplul 3: Puncte pe un cerc
Un punct pe un cerc de rază r are coordonatele (r·cos θ, r·sin θ).
import 'dart:math';
void main() {
const raza = 10;
for (var i = 0; i < 4; i++) {
final unghi = i * pi / 2;
final x = raza * cos(unghi);
final y = raza * sin(unghi);
print('(${x.toStringAsFixed(1)}, ${y.toStringAsFixed(1)})');
}
}
Rezultat
(10.0, 0.0)
(0.0, 10.0)
(-10.0, 0.0)
(-0.0, -10.0)
Greșeli frecvente
- Dai unghiul în grade:
sin(90)nu este 1, ci0.893…, pentru că 90 este interpretat ca 90 de radiani. - Te aștepți la valori exacte:
sin(pi)dă1.2246467991473532e-16, nu0. Rotunjește sau compară cu o toleranță.
Comenzi înrudite
atan2: Returnează unghiul (în radiani, între -π și π) al punctului (x, y) față de axa orizontală.pi: Constantele matematice din dart:math: pi, e, sqrt2, ln10 (și ln2, log2e, log10e, sqrt1_2).sqrt: Calculează rădăcina pătrată a unui număr și returnează mereu un double; pentru numere negative dă NaN.