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
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    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
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:


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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    Output:

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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));
        }
    }

    chevron_right

    
    

    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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
          
         
    }
}

chevron_right


Output:

NaN
NaN
NaN
NaN

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



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.