Trigonometrische Funktionen in C++

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie die Funktion std::sin, um den Sinus in C++ zu berechnen
  2. Verwenden Sie die Funktion std::cos, um den Kosinus in C++ zu berechnen
  3. Verwenden Sie die Funktion std::tan, um die Tangente für den gegebenen Bogenmaß zu berechnen
Trigonometrische Funktionen in C++

In diesem Artikel wird erläutert, wie Sie trigonometrische Funktionen von STL in C++ verwenden.

Verwenden Sie die Funktion std::sin, um den Sinus in C++ zu berechnen

Trigonometrische Funktionen in C++ werden unter der Überschrift <cmath> bereitgestellt. Im Allgemeinen wurden gängige mathematische Funktionen von der Sprache C geerbt, aber die meisten von ihnen sind in C++ überladen, um mit verschiedenen Argumenttypen interoperabel zu sein.

In diesem Fall stellen wir die Funktion std::sin dar, um den Sinus für das angegebene Argument zu berechnen. Das Argument sollte ein Wert im Bogenmaß sein, und wenn die Funktion erfolgreich ist, liegt der Rückgabewert im Bereich von [-1 ; +1]. Beachten Sie, dass std::sin unveränderte Argumente zurückgibt, wenn ihr Wert +-0 ist.

Der folgende Beispielcode berechnet Sinuswerte für gemeinsame Winkel.

#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

Verwenden Sie die Funktion std::cos, um den Kosinus in C++ zu berechnen

std::cos ist eine weitere trigonometrische Kernfunktion und hat ähnliche Eigenschaften wie std::sin, mit Ausnahme der zurückgegebenen Werte für die gleichen Argumente. Beachten Sie, dass alle trigonometrischen Funktionen den Wert von angle als Gleitkommazahl oder Ganzzahl akzeptieren können, aber das entsprechende Ergebnis wird immer als Gleitkommazahl zurückgegeben.

#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

Verwenden Sie die Funktion std::tan, um die Tangente für den gegebenen Bogenmaß zu berechnen

Auf der anderen Seite haben wir die Funktion std::tan, um die Tangentenwerte für gegebene Argumente zu berechnen. Da diese Funktionen Gleitkommawerte zurückgeben, besteht die Möglichkeit, dass einige mathematische Fehlerausnahmen ausgelöst werden, die hier ausführlich beschrieben werden. Darüber hinaus haben wir Bogenversionen für jede trigonometrische Funktion, und sie haben das Präfix a zu den ursprünglichen Funktionsnamen hinzugefügt.

#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
Autor: 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

Verwandter Artikel - C++ Math