C# | Math.Atan2() Method

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

// C# program to demonstrate the// Math.Atan2() Method when point// lies in first quadrantusing 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));    }}
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 quadrantusing 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

// C# program to demonstrate the// Math.Atan2() Method when point// lies in second quadrantusing 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));    }}
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 quadrantusing 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

// C# program to demonstrate the// Math.Atan2() Method when point// lies in third quadrantusing 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));    }}
-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 quadrantusing 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

// C# program to demonstrate the// Math.Atan2() Method when point// lies in fourth quadrantusing 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));    }}
-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 negativeusing 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

// C# program to demonstrate the// Math.Atan2() Method when value1 // is 0 and value2 is not negativeusing 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));    }}
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 negativeusing 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

// C# program to demonstrate the// Math.Atan2() Method when value1 // is 0 and value2 is negativeusing 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));    }}
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 0using 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

// C# program to demonstrate the// Math.Atan2() Method value1 is// positive and value2 is 0using 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));    }}
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 0using 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

// C# program to demonstrate the// Math.Atan2() Method value1 is// negative and value2 is 0using 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));    }}
-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 0using 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

// C# program to demonstrate the// Math.Atan2() Method value1 is// 0 and value2 is 0using 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));    }}
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));                       }}
NaN
NaN
NaN
NaN

Reference: https://msdn.microsoft.com/en-us/library/system.math.atan2
CSharp-Math
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C# Dictionary with examples
Introduction to .NET Framework
C# | Delegates
C# | Multiple inheritance using interfaces
Differences Between .NET Core and .NET Framework
C# | Method Overriding
C# | Data Types
C# | Constructors
C# | String.IndexOf( ) Method | Set - 1
C# | Class and Object