Compartir a través de


Complex.FromPolarCoordinates Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Creates a complex number from a point's polar coordinates.

Namespace:  System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

Syntax

'Declaration
Public Shared Function FromPolarCoordinates ( _
    magnitude As Double, _
    phase As Double _
) As Complex
public static Complex FromPolarCoordinates(
    double magnitude,
    double phase
)

Parameters

  • magnitude
    Type: System.Double
    The magnitude, which is the distance from the origin (the intersection of the x-axis and the y-axis) to the number.
  • phase
    Type: System.Double
    The phase, which is the angle from the line to the horizontal axis, measured in radians.

Return Value

Type: System.Numerics.Complex
A complex number.

Remarks

The FromPolarCoordinates method instantiates a complex number based on its polar coordinates.

Because there are multiple representations of a point on a complex plane, the return value of the FromPolarCoordinates method is normalized. The magnitude is normalized to a positive number, and the phase is normalized to a value in the range of -PI to PI. As a result, the values of the Phase and Magnitude properties of the resulting complex number may not equal the original values of the magnitude and phase parameters.

To convert a value from degrees to radians for the phase parameter, multiply it by Math.PI/180.

Examples

The following example uses the FromPolarCoordinates method to instantiate a complex number based on its polar coordinates and then displays the value of its Magnitude and Phase properties.

Imports System.Numerics

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      Dim c1 As Complex = Complex.FromPolarCoordinates(10, 45 * Math.Pi / 180)
      outputBlock.Text += String.Format("{0}:", c1) & vbCrLf
      outputBlock.Text += String.Format("   Magnitude: {0}", Complex.Abs(c1)) & vbCrLf
      outputBlock.Text += String.Format("   Phase:     {0} radians", c1.Phase) & vbCrLf
      outputBlock.Text += String.Format("   Phase      {0} degrees", c1.Phase * 180 / Math.Pi) & vbCrLf
      outputBlock.Text += String.Format("   Atan(b/a): {0}", Math.Atan(c1.Imaginary / c1.Real)) & vbCrLf
   End Sub
End Module
' The example displays the following output:
'       (7.07106781186548, 7.07106781186547):
'          Magnitude: 10
'          Phase:     0.785398163397448 radians
'          Phase      45 degrees
'          Atan(b/a): 0.785398163397448
using System;
using System.Numerics;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Complex c1 = Complex.FromPolarCoordinates(10, 45 * Math.PI / 180);
      outputBlock.Text += String.Format("{0}:", c1) + "\n";
      outputBlock.Text += String.Format("   Magnitude: {0}", Complex.Abs(c1)) + "\n";
      outputBlock.Text += String.Format("   Phase:     {0} radians", c1.Phase) + "\n";
      outputBlock.Text += String.Format("   Phase      {0} degrees", c1.Phase * 180 / Math.PI) + "\n";
      outputBlock.Text += String.Format("   Atan(b/a): {0}", Math.Atan(c1.Imaginary / c1.Real)) + "\n";
   }
}
// The example displays the following output:
//       (7.07106781186548, 7.07106781186547):
//          Magnitude: 10
//          Phase:     0.785398163397448 radians
//          Phase      45 degrees
//          Atan(b/a): 0.785398163397448

Version Information

Silverlight

Supported in: 5, 4

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.