原文网址:https://msdn.microsoft.com/zh-cn/library/system.math.atan2.aspx
返回正切值为两个指定数字的商的角度。
命名空间: System
程序集: mscorlib(在 mscorlib.dll 中)
返回值
类型:System.Double角度 θ,以弧度为单位,满足 -π≤θ≤π,且 tan(θ) = y / x,其中 (x, y) 是笛卡尔平面中的点。 请看下面:
-
如果 (x, y) 在第 1 象限,则 0 < θ < π/2。
-
如果 (x, y) 在第 2 象限,则 π/2 < θ≤π。
-
如果 (x, y) 在第 3 象限,则 -π < θ < -π/2。
-
如果 (x, y) 在第 4 象限,则 -π/2 < θ < 0。
-
如果 y 为 0 并且 x 不为负值,则 θ = 0。
-
如果 y 为 0 并且 x 为负值,则 θ = π。
-
如果 y 为正值并且 x 为 0,则 θ = π/2。
-
如果 y 为负值并且 x 为 0,则 θ = -π/2。
-
如果 y 为 0 并且 x 为 0,则 θ = 0。
下面的示例演示如何计算角和向量的反正切。 结果值会显示在控制台中。
// This example demonstrates Math.Atan() // Math.Atan2() // Math.Tan() using System; class Sample { public static void Main() { double x = 1.0; double y = 2.0; double angle; double radians; double result; // Calculate the tangent of 30 degrees. angle = 30; radians = angle * (Math.PI/180); result = Math.Tan(radians); Console.WriteLine("The tangent of 30 degrees is {0}.", result); // Calculate the arctangent of the previous tangent. radians = Math.Atan(result); angle = radians * (180/Math.PI); Console.WriteLine("The previous tangent is equivalent to {0} degrees.", angle); // Calculate the arctangent of an angle. String line1 = "{0}The arctangent of the angle formed by the x-axis and "; String line2 = "a vector to point ({0},{1}) is {2}, "; String line3 = "which is equivalent to {0} degrees."; radians = Math.Atan2(y, x); angle = radians * (180/Math.PI); Console.WriteLine(line1, Environment.NewLine); Console.WriteLine(line2, x, y, radians); Console.WriteLine(line3, angle); } } /* This example produces the following results: The tangent of 30 degrees is 0.577350269189626. The previous tangent is equivalent to 30 degrees. The arctangent of the angle formed by the x-axis and a vector to point (1,2) is 1.10714871779409, which is equivalent to 63.434948822922 degrees. */