# Math.Atan2(Double, Double) Method

## Definition

Returns the angle whose tangent is the quotient of two specified numbers.

```
public:
static double Atan2(double y, double x);
```

`public static double Atan2 (double y, double x);`

`static member Atan2 : double * double -> double`

`Public Shared Function Atan2 (y As Double, x As Double) As Double`

#### Parameters

- y
- Double

The y coordinate of a point.

- x
- Double

The x coordinate of a point.

#### Returns

An angle, θ, measured in radians, such that -π ≤ θ ≤ π, and tan(θ) = `y`

/ `x`

, where (`x`

, `y`

) is a point in the Cartesian plane. Observe the following:

For (

`x`

,`y`

) in quadrant 1, 0 < θ < π/2.For (

`x`

,`y`

) in quadrant 2, π/2 < θ ≤ π.For (

`x`

,`y`

) in quadrant 3, -π < θ < -π/2.For (

`x`

,`y`

) in quadrant 4, -π/2 < θ < 0.

For points on the boundaries of the quadrants, the return value is the following:

If y is 0 and x is not negative, θ = 0.

If y is 0 and x is negative, θ = π.

If y is positive and x is 0, θ = π/2.

If y is negative and x is 0, θ = -π/2.

If y is 0 and x is 0, θ = 0.

If `x`

or `y`

is NaN, or if `x`

and `y`

are either PositiveInfinity or NegativeInfinity, the method returns NaN.

## Examples

The following example demonstrates how to calculate the arctangent of an angle and a vector. The resulting value is displayed in the console.

```
// This example demonstrates Math.Atan()
// Math.Atan2()
// Math.Tan()
using namespace System;
int main()
{
double x = 1.0;
double y = 2.0;
double angle;
double radians;
double result;
// Calculate the tangent of 30 degrees.
angle = 30;
radians = angle * (Math::PI / 180);
result = Math::Tan( radians );
Console::WriteLine( "The tangent of 30 degrees is {0}.", result );
// Calculate the arctangent of the previous tangent.
radians = Math::Atan( result );
angle = radians * (180 / Math::PI);
Console::WriteLine( "The previous tangent is equivalent to {0} degrees.", angle );
// Calculate the arctangent of an angle.
String^ line1 = "{0}The arctangent of the angle formed by the x-axis and ";
String^ line2 = "a vector to point ({0},{1}) is {2}, ";
String^ line3 = "which is equivalent to {0} degrees.";
radians = Math::Atan2( y, x );
angle = radians * (180 / Math::PI);
Console::WriteLine( line1, Environment::NewLine );
Console::WriteLine( line2, x, y, radians );
Console::WriteLine( line3, angle );
}
/*
This example produces the following results:
The tangent of 30 degrees is 0.577350269189626.
The previous tangent is equivalent to 30 degrees.
The arctangent of the angle formed by the x-axis and
a vector to point (1,2) is 1.10714871779409,
which is equivalent to 63.434948822922 degrees.
*/
```

```
// This example demonstrates Math.Atan()
// Math.Atan2()
// Math.Tan()
using System;
class Sample
{
public static void Main()
{
double x = 1.0;
double y = 2.0;
double angle;
double radians;
double result;
// Calculate the tangent of 30 degrees.
angle = 30;
radians = angle * (Math.PI/180);
result = Math.Tan(radians);
Console.WriteLine("The tangent of 30 degrees is {0}.", result);
// Calculate the arctangent of the previous tangent.
radians = Math.Atan(result);
angle = radians * (180/Math.PI);
Console.WriteLine("The previous tangent is equivalent to {0} degrees.", angle);
// Calculate the arctangent of an angle.
String line1 = "{0}The arctangent of the angle formed by the x-axis and ";
String line2 = "a vector to point ({0},{1}) is {2}, ";
String line3 = "which is equivalent to {0} degrees.";
radians = Math.Atan2(y, x);
angle = radians * (180/Math.PI);
Console.WriteLine(line1, Environment.NewLine);
Console.WriteLine(line2, x, y, radians);
Console.WriteLine(line3, angle);
}
}
/*
This example produces the following results:
The tangent of 30 degrees is 0.577350269189626.
The previous tangent is equivalent to 30 degrees.
The arctangent of the angle formed by the x-axis and
a vector to point (1,2) is 1.10714871779409,
which is equivalent to 63.434948822922 degrees.
*/
```

```
' This example demonstrates Math.Atan()
' Math.Atan2()
' Math.Tan()
Class Sample
Public Shared Sub Main()
Dim x As Double = 1.0
Dim y As Double = 2.0
Dim angle As Double
Dim radians As Double
Dim result As Double
' Calculate the tangent of 30 degrees.
angle = 30
radians = angle *(Math.PI / 180)
result = Math.Tan(radians)
Console.WriteLine("The tangent of 30 degrees is {0}.", result)
' Calculate the arctangent of the previous tangent.
radians = Math.Atan(result)
angle = radians *(180 / Math.PI)
Console.WriteLine("The previous tangent is equivalent to {0} degrees.", angle)
' Calculate the arctangent of an angle.
Dim line1 As [String] = "{0}The arctangent of the angle formed by the x-axis and "
Dim line2 As [String] = "a vector to point ({0},{1}) is {2}, "
Dim line3 As [String] = "which is equivalent to {0} degrees."
radians = Math.Atan2(y, x)
angle = radians *(180 / Math.PI)
Console.WriteLine(line1, Environment.NewLine)
Console.WriteLine(line2, x, y, radians)
Console.WriteLine(line3, angle)
End Sub
End Class
'
'This example produces the following results:
'
'The tangent of 30 degrees is 0.577350269189626.
'The previous tangent is equivalent to 30 degrees.
'
'The arctangent of the angle formed by the x-axis and
'a vector to point (1,2) is 1.10714871779409,
'which is equivalent to 63.434948822922 degrees.
'
```

## Remarks

The return value is the angle in the Cartesian plane formed by the x-axis, and a vector starting from the origin, (0,0), and terminating at the point, (x,y).

This method calls into the underlying C runtime, and the exact result or valid input range may differ between different operating systems or architectures.