C# | Math.Atan2() Method

Last Updated : 11 Jul, 2025
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 csharp
    // 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 < θ ≤ π csharp
    // 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 csharp
    // 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 csharp
    // 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 csharp
    // 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. θ = π csharp
    // 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 csharp
    // 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 csharp
    // 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 csharp
    // 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: csharp
// 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));
        
       
    }
}
Comment

Explore