====== atan2() ====== atan2 ist definiert in der ''[[start|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 [[c:lib:math:tan()|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 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([[wpde>Kreiszahl|Kreiszahl Pi]]) ===== Fehlerquellen ===== Eine beliebte Fehlerquelle ist zu übersehen, dass der Computer Winkel im Bogenmaß berechnet, also von 0 bis π ([[wpde>Kreiszahl|Kreiszahl Pi]]). Winkel von 0 bis 180 Grad müssen [[theory:math:trigonometry:angular-dimensions|umgerechnet]] werden. Sind beide Ordinaten 0, so wird errno auf [[c:std:lib:errno:EDOM]] gesetzt. ===== Beispiel ===== #include // für EXIT_SUCCESS #include // für atan2 #include // 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 ===== [[c:lib:math:start|math]]: [[c:lib:math:atan()]], [[c:lib:math:tan()]], [[c:lib:math:asin()]], [[c:lib:math:acos()]], [[c:lib:math:sin()]], [[c:lib:math:cos()]] \\ [[cpp:lib:valarray:start|ValArray]]: [[cpp:lib:valarray:atan()]], [[cpp:lib:valarray:asin()]], [[cpp:lib:valarray:acos()]] \\ [[theory:math:trigonometry:start|Trigometrie]]: [[theory:math:trigonometry:angular-dimensions|Winkelmaße]]