Chapter Contents |
Previous |
Next |
atan2 |
Portability: | ISO/ANSI C conforming, UNIX compatible |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
DIAGNOSTICS | |
EXAMPLE | |
RELATED FUNCTIONS | |
SEE ALSO |
SYNOPSIS |
#include <math.h> double atan2(double y, double x);
DESCRIPTION |
atan2
computes the angle defined by the positive x axis and a line through the point
(
x,y
) to the point (0, 0). The signs of
both values
x
and
y
are used to determine the quadrant of the result in a Cartesian system.
The result is the inverse trigonometric tangent of
y/x
if
x
is not 0.
RETURN VALUE |
Provided that it is defined and computable,
the return value is the angular position of the point
x,y
. The return value is a double-precision, floating-point number
expressed in radians and lies in the half-open interval (- ,)
. For input values (0.0,
y
), the return
value will be either /2 or -/2 if
y
does not equal 0.
DIAGNOSTICS |
If both
x
and
y
are 0, an error message is
written to
stderr
and the function returns
0.0.
If an error occurs in
atan2
, the
_matherr
routine is called.
You can supply your own version of
_matherr
to suppress the diagnostic message or modify the value returned.
EXAMPLE |
This example converts rectangular coordinates to polar coordinates:
#include <stdio.h> #include <lcmath.h> main() { double x, y; /* rectangular coordinates (x,y) */ double r, angle; /* polar coordinates (r,angle) */ puts("Enter the rectangular coordinates please: "); scanf("%lf %lf", &x, &y ); r = sqrt((x*x) + (y*y)); /* Compute polar coordinates (radians). */ angle = atan2(y , x); /* Convert radians to degrees. */ angle = (180.0 * angle)/M_PI; printf("rect coords(%f,%f) -> polar coords(%f,%f)\n", x,y,r,angle); }
RELATED FUNCTIONS |
SEE ALSO |
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.