Open In App

C# | Math.Atan2() Method

Last Updated : 31 Jan, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

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

Reference: https://msdn.microsoft.com/en-us/library/system.math.atan2



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads