Math.Atan2(Double, Double) Metoda

Definice

Vrátí úhel, jehož tangens je podílem dvou zadaných čísel.

public static double Atan2(double y, double x);

Parametry

y
Double

Souřadnice y bodu.

x
Double

Souřadnice x bodu.

Návraty

Úhel, θ, měřený v radiánech, takový, že tan(θ) = y / x, kde (x, y) je bod v kartézské rovině. Sledujte následující:

  • Pro (x, y) v kvadrantu 1, 0 < θ < π/2.

  • Pro (x, y) v kvadrantu 2 π/2 < θ ≤ π.

  • Pro (x, y) v kvadrantu 3, -π ≤ θ < -π/2.

  • Pro (x, y) v kvadrantu 4, -π/2 < θ < 0.

Pro body na hranicích kvadrantů je návratová hodnota následující:

  • Pokud je y 0 a x není záporné, θ = 0.

  • Pokud je y 0 a x záporné, θ = π.

  • Pokud je y pozitivní a x je 0, θ = π/2.

  • Pokud je hodnota y záporná a x je 0, θ = -π/2.

  • Pokud je y 0 a x 0, θ = 0.

Pokud x nebo y je NaN, nebo pokud x a y jsou nebo PositiveInfinityNegativeInfinity, vrátí metoda .NaN

Příklady

Následující příklad ukazuje, jak vypočítat arkusangens úhlu a vektoru. Výsledná hodnota se zobrazí v konzole.

// 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.
*/

Poznámky

Návratová hodnota je úhel v kartézské rovině vytvořené osou x a vektor začínající od počátku (0,0) a končící v bodě (x,y).

Tato metoda volá základní modul runtime jazyka C a přesný výsledek nebo platný rozsah vstupu se může v různých operačních systémech nebo architekturách lišit.

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0