次の方法で共有


Math.Atan2 メソッド

タンジェントが 2 つの指定された数の商である角度を返します。

Public Shared Function Atan2( _
   ByVal y As Double, _   ByVal x As Double _) As Double
[C#]
public static double Atan2(doubley,doublex);
[C++]
public: static double Atan2(doubley,doublex);
[JScript]
public static function Atan2(
   y : double,x : double) : double;

パラメータ

  • y
    点の y 座標。
  • x
    点の x 座標。

戻り値

-π ≤ θ ≤ π および tan(θ) = y/ x の、ラジアンで示した角度 θ。(x, y) はデカルト座標の点を示します。次の点に注意してください。

  • クワドラント 1 の (x, y) の場合は 0 < &theta; < &pi;/2。
  • クワドラント 2 の (x, y) の場合は &pi;/2 < &theta; &le; &pi;。
  • クワドラント 3 の (x, y) の場合は -&pi; < &theta; < -&pi;/2。
  • クワドラント 4 の (x, y) の場合は -&pi;/2 < &theta; < 0。

解説

戻り値は、デカルト座標の x 軸と、原点 (0,0) から始まり点 (x,y) で終了するベクタによって構成される角度です。

使用例

 
' This example demonstrates Math.Atan()
'                           Math.Atan2()
'                           Math.Tan()
Imports System

Class Sample
   Public Shared Sub Main()
      Dim x As Double = 1.0
      Dim y As Double = 2.0
      Dim angle As Double
      Dim radians As Double
      Dim result As Double
      
      ' 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.
      Dim line1 As [String] = "{0}The arctangent of the angle formed by the x-axis and "
      Dim line2 As [String] = "a vector to point ({0},{1}) is {2}, "
      Dim line3 As [String] = "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)
   End Sub 'Main
End Class 'Sample
'
'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.
'

[C#] 
// 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.
*/

[C++] 
// This example demonstrates Math.Atan()
//                           Math.Atan2()
//                           Math.Tan()
#using <mscorlib.dll>
using namespace System;

int 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(S"The tangent of 30 degrees is {0}.", __box(result));

// Calculate the arctangent of the previous tangent.
    radians = Math::Atan(result);
    angle = radians * (180/Math::PI);
    Console::WriteLine(S"The previous tangent is equivalent to {0} degrees.", __box(angle));

// Calculate the arctangent of an angle.
    String* line1 = S"{0}The arctangent of the angle formed by the x-axis and ";
    String* line2 = S"a vector to point ({0},{1}) is {2}, ";
    String* line3 = S"which is equivalent to {0} degrees.";

    radians = Math::Atan2(y, x);
    angle = radians * (180/Math::PI);

    Console::WriteLine(line1, Environment::NewLine);
    Console::WriteLine(line2, __box(x), __box(y), __box(radians));
    Console::WriteLine(line3, __box(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.
*/

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Math クラス | Math メンバ | System 名前空間