C# | Math.Atan2() Method
Last Updated :
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
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(10, 10) * (180 / Math.PI));
}
}
|
- Program 2: If point(value1, value2) lies in the second quadrant i.e., π / 2 < θ ≤ π
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(10, -10) * (180 / Math.PI));
}
}
|
- Program 3: If point(value1, value2) lies in the third quadrant i.e., -π < θ < -π / 2
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(-10, -10) * (180 / Math.PI));
}
}
|
- Program 4: If point(value1, value2) lies in the fourth quadrant i.e., -π / 2 < θ < 0
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(-10, 10) * (180 / Math.PI));
}
}
|
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
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(0, 10) * (180 / Math.PI));
}
}
|
- Program 2: If value1 is 0 and value2 is negative i.e. θ = π
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(0, -10) * (180 / Math.PI));
}
}
|
- Program 3: If value1 is positive and value2 is 0 i.e. θ = π / 2
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(10, 0) * (180 / Math.PI));
}
}
|
- Program 4: If value1 is negative and value2 is 0 i.e. θ = -π / 2
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(-10, 0) * (180 / Math.PI));
}
}
|
- Program 5: If value1 is 0 and value2 is 0 i.e. θ = 0
using System;
class Geeks {
public static void Main()
{
Console.Write(Math.Atan2(0, 0) * (180 / Math.PI));
}
}
|
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:
using System;
class Geeks {
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));
}
}
|
Reference: https://msdn.microsoft.com/en-us/library/system.math.atan2
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...