Fonctions trigonométriques en C++
-
Utilisez la fonction
std::sin
pour calculer le sinus en C++ -
Utilisez la fonction
std::cos
pour calculer le cosinus en C++ -
Utilisez la fonction
std::tan
pour calculer la tangente pour une valeur radian donnée
Cet article explique comment utiliser les fonctions trigonométriques de STL en C++.
Utilisez la fonction std::sin
pour calculer le sinus en C++
Les fonctions trigonométriques en C++ sont fournies sous l’en-tête <cmath>
. Généralement, les fonctions mathématiques courantes ont été héritées du langage C, mais la plupart d’entre elles sont surchargées en C++ pour être interopérables avec différents types d’arguments.
Dans ce cas, nous représentons la fonction std::sin
pour calculer le sinus pour l’argument donné. L’argument doit être une valeur en radians, et si la fonction réussit, la valeur de retour est dans la plage de [-1 ; +1]
. Notez que std::sin
renvoie des arguments non modifiés si leur valeur est +-0
.
L’exemple de code suivant calcule les valeurs sinus pour les angles communs.
#include <cmath>
#include <iostream>
using std::cout;
using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "sin(pi) = " << std::sin(pi) << '\n'
<< "sin(pi/6) = " << std::sin(pi / 6) << '\n'
<< "sin(pi/4) = " << std::sin(pi / 4) << '\n'
<< "sin(pi/3) = " << std::sin(pi / 3) << '\n'
<< "sin(pi/2) = " << std::sin(pi / 2) << '\n'
<< "sin(+0) = " << std::sin(0.0) << '\n'
<< "sin(-0) = " << std::sin(-0.0) << '\n';
return EXIT_SUCCESS;
}
sin(pi) = 1.22465e-16
sin(pi/6) = 0.5
sin(pi/4) = 0.707107
sin(pi/3) = 0.866025
sin(pi/2) = 1
sin(+0) = 0
sin(-0) = -0
Utilisez la fonction std::cos
pour calculer le cosinus en C++
std::cos
est une autre fonction trigonométrique de base, et elle a des caractéristiques similaires à celles de std::sin
à l’exception des valeurs renvoyées pour les mêmes arguments. Notez que toutes les fonctions trigonométriques peuvent accepter la valeur de l’angle comme un nombre à virgule flottante d’entier, mais le résultat correspondant est toujours renvoyé comme un nombre à virgule flottante.
#include <iostream>
#include <cmath>
using std::cout; using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "cos(pi) = " << std::cos(pi) << '\n'
<< "cos(pi/6) = " << std::cos(pi/6) << '\n'
<< "cos(pi/4) = " << std::cos(pi/4) << '\n'
<< "cos(pi/3) = " << std::cos(pi/3) << '\n'
<< "cos(pi/2) = " << std::cos(pi/2) << '\n'
<< "cos(+0) = " << std::cos(0.0) << '\n'
<< "cos(-0) = " << std::cos(-0.0) << '\n';
return EXIT_SUCCESS;
}
cos(pi) = -1
cos(pi/6) = 0.866025
cos(pi/4) = 0.707107
cos(pi/3) = 0.5
cos(pi/2) = 6.12323e-17
cos(+0) = 1
cos(-0) = 1
Utilisez la fonction std::tan
pour calculer la tangente pour une valeur radian donnée
D’autre part, nous avons la fonction std::tan
pour calculer les valeurs de tangente pour des arguments donnés. Étant donné que ces fonctions renvoient des valeurs à virgule flottante, il est possible que certaines exceptions d’erreurs mathématiques soient levées, qui sont décrites en détail ici. De plus, nous avons des versions d’arc pour chaque fonction trigonométrique, et elles ont un préfixe a
ajouté aux noms de fonction d’origine.
#include <iostream>
#include <cmath>
using std::cout; using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "tan(pi) = " << std::tan(pi) << '\n'
<< "tan(pi/6) = " << std::tan(pi/6) << '\n'
<< "tan(pi/4) = " << std::tan(pi/4) << '\n'
<< "tan(pi/3) = " << std::tan(pi/3) << '\n'
<< "tan(pi/2) = " << std::tan(pi/2) << '\n'
<< "tan(+0) = " << std::tan(0.0) << '\n'
<< "tan(-0) = " << std::tan(-0.0) << '\n';
return EXIT_SUCCESS;
}
tan(pi) = -1.22465e-16
tan(pi/6) = 0.57735
tan(pi/4) = 1
tan(pi/3) = 1.73205
tan(pi/2) = 1.63312e+16
tan(+0) = 0
tan(-0) = -0
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook