YouTip LogoYouTip

C Function Atan2

# C Library Function - atan2() [![Image 3: C Standard Library - ](#) C Standard Library - ](#) ## Description `atan2()` is a function in the C standard library `` used to compute the arctangent of two arguments. These arguments represent the y-coordinate and x-coordinate of a point. The `atan2()` function returns the angle from the x-axis to the point (x, y), in radians. This function is more powerful than using the `atan()` function alone because it considers the signs of both x and y, allowing it to determine the correct quadrant. ## Declaration Below is the declaration of the atan2() function. #include double atan2(double y, double x);float atan2f(float y, float x);long double atan2l(long double y, long double x); ## Parameters * **x** -- A floating-point value representing the x-axis coordinate. * **y** -- A floating-point value representing the y-axis coordinate. ## Return Value * Returns the arctangent of the point (x, y), in radians. The return value is in the range [-Ο€, Ο€]. ## Example The following example demonstrates the usage of the atan2() function. ## Example #include #include #define PI 3.14159265 int main () { double x, y, ret, val; x =-7.0; y =7.0; val =180.0/ PI; ret =atan2(y,x)* val; printf("The arctangent of x = %lf, y = %lf", x, y); printf("is %lf degreesn", ret); return(0); } * `atan2(y, x)` calculates the arctangent of y / x, considering the signs of y and x to determine the correct quadrant of the angle. * The result is in radians, within the range [-Ο€, Ο€]. * By multiplying the radian result by `180 / Ο€`, it can be converted to degrees. Let's compile and run the above program, which will produce the following result: x = -7.000000, y = 7.000000 the arctangent is 135.000000 degree ### Determining the Quadrant The following example shows how to use atan2() to determine the quadrant in which a point lies: ## Example #include #include void print_quadrant(double y,double x){ double angle =atan2(y, x); printf("Point (%f, %f) is in quadrant: ", x, y); if(angle >0&& angle M_PI /2&& angle < M_PI){ printf("IIn"); }else if(angle -M_PI /2){ printf("IVn"); }else{ printf("IIIn"); } } int main(){ print_quadrant(1.0,1.0);// I print_quadrant(1.0,-1.0);// II print_quadrant(-1.0,-1.0);// III print_quadrant(-1.0,1.0);// IV return 0; } Code Analysis: * The function `print_quadrant()` takes y and x parameters, calculates their arctangent, and determines the quadrant of the point based on the result. * The code uses `atan2(y, x)` to calculate the arctangent and determines the quadrant based on the angle's range. Let's compile and run the above program, which will produce the following result: Point (1.000000, 1.000000) is in quadrant: I Point (-1.000000, 1.000000) is in quadrant: II Point (-1.000000, -1.000000) is in quadrant: III Point (1.000000, -1.000000) is in quadrant: IV ### Error Handling * `atan2()` is valid for all real inputs, so no additional error handling is required. * The function does not set `errno`, nor does it return NaN. ### Summary The `atan2()` function is used to compute the arctangent of a point (x, y) and is a powerful tool for angle calculations on a 2D plane. Compared to `atan()`, it can correctly handle angles in all quadrants and return precise results. In mathematical computations and graphics processing, using `atan2()` appropriately can simplify code and improve accuracy. [![Image 4: C Standard Library - ](#) C Standard Library - ](#)
← Cpp Examples Even OddCpp Examples Sizeof Operator β†’