atan2()

atan2 ist definiert in der math, die in C über math.h, bzw. in C++ über cmath eingebunden wird.

Funktion

atan2() berechnet den Arcus Tangens des übergebenen Parameters. Der Arcus Tangens ist die Umkehrfunktion des Tangens. Als Parameter werden hier hier Punktkoordinaten übergeben. Die Gradzahl errechnet sich an beginnend oben an der y-Achse (12 Uhr) und steigt dann im Uhrzeigersinn (3 Uhr: 90 Grad, 6 Uhr: 180 Grad, 9 Uhr: -90 Grad)

Signatur

#include <math.h>
double      atan2(      double y, double      x );       
float       atan2(       float y, float       x );  // nur C++
long double atan2( long double x, long double x );  // nur C++

x: x Koordinate des Punktes y: y Koordinate des Punktes

Return value: Winkel im Bereich von -π/2 bis +π/2(Kreiszahl Pi)

Fehlerquellen

Eine beliebte Fehlerquelle ist zu übersehen, dass der Computer Winkel im Bogenmaß berechnet, also von 0 bis π (Kreiszahl Pi). Winkel von 0 bis 180 Grad müssen umgerechnet werden.

Sind beide Ordinaten 0, so wird errno auf EDOM gesetzt.

Beispiel

#include <stdlib.h> // für EXIT_SUCCESS
#include <math.h>   // für atan2
#include <stdio.h>  // für printf()
 
#define PI 3.141592654
 
int main( void )
{
  double value, degree;
  double xPos = 5, yPos = -5; // rechts, unten
 
  value = atan2( xPos, yPos );
  degree = value * 180 / PI;
 
  printf( "atan2(%f,%f) sind %f bzw. %f Grad\n", xPos, yPos, value, degree );
 
  return EXIT_SUCCESS; 
}

Ausgabe:

atan2(5.000000,-5.000000) sind 2.356194 bzw. 135.000000 Grad

Hinweis

In C++ wird diese Funktion mit einem ValueArray-Template überschrieben.

siehe auch