# C# | Math.Atan2() Method

Last Updated : 31 Jan, 2019

Math.Atan2() is an inbuilt Math class method which returns the angle whose tangent is the quotient of two specified numbers. Basically, it returns an angle θ (measured in radian) whose value lies between -π and π. This is a counterclockwise angle lies between the positive x-axis, and the point (x, y).

Syntax:

```public static double Atan2(double value1, double value2)
```

Parameters:

value1: y coordinate of the point of type System.Double.
value2: x coordinate of the point of type System.Double.

Return Type: Returns the angle Θ of type System.Double.

Note: An angle, θ(measured in radians), such that -π ≤ θ ≤ π, and tan(θ) = value1 / value2, where (value1, value2) are the points in the cartesian plane. There are two conditions for the return values:

• When the points lies in the Cartesian plane
• When the points lies on the boundaries of the quadrants

Below are the programs to demonstrate the Math.Atan2() Method when the points lies in the Cartesian plane:

• Program 1: If point(value1, value2) lies in the first quadrant i.e., 0 < θ < π / 2

 `// C# program to demonstrate the ` `// Math.Atan2() Method when point ` `// lies in first quadrant ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(10, 10) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```45
```
• Program 2: If point(value1, value2) lies in the second quadrant i.e., π / 2 < θ ≤ π

 `// C# program to demonstrate the ` `// Math.Atan2() Method when point ` `// lies in second quadrant ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(10, -10) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```135
```
• Program 3: If point(value1, value2) lies in the third quadrant i.e., -π < θ < -π / 2

 `// C# program to demonstrate the ` `// Math.Atan2() Method when point ` `// lies in third quadrant ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(-10, -10) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```-135
```
• Program 4: If point(value1, value2) lies in the fourth quadrant i.e., -π / 2 < θ < 0

 `// C# program to demonstrate the ` `// Math.Atan2() Method when point ` `// lies in fourth quadrant ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(-10, 10) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```-45
```

Below are the programs to demonstrate the Math.Atan2() Method when the points lies on the boundaries of the quadrants:

• Program 1: If value1 is 0 and value2 is not negative i.e. θ = 0

 `// C# program to demonstrate the ` `// Math.Atan2() Method when value1  ` `// is 0 and value2 is not negative ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(0, 10) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```0
```
• Program 2: If value1 is 0 and value2 is negative i.e. θ = π

 `// C# program to demonstrate the ` `// Math.Atan2() Method when value1  ` `// is 0 and value2 is negative ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(0, -10) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```180
```
• Program 3: If value1 is positive and value2 is 0 i.e. θ = π / 2

 `// C# program to demonstrate the ` `// Math.Atan2() Method value1 is ` `// positive and value2 is 0 ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(10, 0) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```90
```
• Program 4: If value1 is negative and value2 is 0 i.e. θ = -π / 2

 `// C# program to demonstrate the ` `// Math.Atan2() Method value1 is ` `// negative and value2 is 0 ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(-10, 0) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```-90
```
• Program 5: If value1 is 0 and value2 is 0 i.e. θ = 0

 `// C# program to demonstrate the ` `// Math.Atan2() Method value1 is ` `// 0 and value2 is 0 ` `using` `System; ` ` `  `class` `Geeks { ` `    `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// using Math.Atan2() Method & ` `        ``// converting result into degree ` `        ``Console.Write(Math.Atan2(0, 0) * (180 / Math.PI)); ` `    ``} ` `} `

Output:

```0
```

Important Point to Remember: If value1 or value2 is NaN, or if value1 and value1 are either PositiveInfinity or NegativeInfinity, the method returns NaN.

Example:

 `// C# program to demonstrate the Math.Atan2()  ` `// method when arguments are of type either  ` `// NaN, PositiveInfinity or NegativeInfinity  ` `using` `System; ` ` `  `class` `Geeks { ` `     `  `    ``// Main method ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``double` `val1 = 0; ` `        ``double` `val2 = Double.NaN; ` `        ``Console.WriteLine(Math.Atan2(val1, val2)); ` `         `  `        ``double` `val3 = Double.NaN; ` `        ``double` `val4 = Double.NaN; ` `        ``Console.WriteLine(Math.Atan2(val3, val4)); ` `         `  `        ``double` `val5 = Double.NaN; ` `        ``double` `val6 = Double.PositiveInfinity; ` `        ``Console.WriteLine(Math.Atan2(val5, val6)); ` `         `  `        ``double` `val7 = Double.PositiveInfinity; ` `        ``double` `val8 = Double.NegativeInfinity; ` `        ``Console.WriteLine(Math.Atan2(val7, val8)); ` `         `  `        `  `    ``} ` `} `

Output:

```NaN
NaN
NaN
NaN
```