# C# | Math.Atan2() Method

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
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.