Fonctions trigonométriques en C++

Jinku Hu 12 octobre 2023
  1. Utilisez la fonction std::sin pour calculer le sinus en C++
  2. Utilisez la fonction std::cos pour calculer le cosinus en C++
  3. Utilisez la fonction std::tan pour calculer la tangente pour une valeur radian donnée
Fonctions trigonométriques en C++

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
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Article connexe - C++ Math