Math.Asin Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns the angle whose sine is the specified number.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Shared Function Asin ( _
d As Double _
) As Double
[SecuritySafeCriticalAttribute]
public static double Asin(
double d
)
Parameters
- d
Type: System.Double
A number representing a sine, where d must be greater than or equal to -1, but less than or equal to 1.
Return Value
Type: System.Double
An angle, θ, measured in radians, such that -π/2 ≤θ≤π/2
-or-
NaN if d < -1 or d > 1 or d equals NaN.
Remarks
A positive return value represents a counterclockwise angle from the x-axis; a negative return value represents a clockwise angle.
Multiply the return value by 180/Math.PI to convert from radians to degrees.
Examples
The following code sample uses Asin to assist in the computation of the inner angles of a given trapezoid.
'The following class represents simple functionality of the trapezoid.
Class Example
Private m_longBase As Double
Private m_shortBase As Double
Private m_leftLeg As Double
Private m_rightLeg As Double
Public Sub New(ByVal longbase As Double, ByVal shortbase As Double, ByVal leftLeg As Double, ByVal rightLeg As Double)
m_longBase = Math.Abs(longbase)
m_shortBase = Math.Abs(shortbase)
m_leftLeg = Math.Abs(leftLeg)
m_rightLeg = Math.Abs(rightLeg)
End Sub
Private Function GetRightSmallBase() As Double
GetRightSmallBase = (Math.Pow(m_rightLeg, 2) - Math.Pow(m_leftLeg, 2) + Math.Pow(m_longBase, 2) + Math.Pow(m_shortBase, 2) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase))
End Function
Public Function GetHeight() As Double
Dim x As Double = GetRightSmallBase()
GetHeight = Math.Sqrt(Math.Pow(m_rightLeg, 2) - Math.Pow(x, 2))
End Function
Public Function GetSquare() As Double
GetSquare = GetHeight() * m_longBase / 2
End Function
Public Function GetLeftBaseRadianAngle() As Double
Dim sinX As Double = GetHeight() / m_leftLeg
GetLeftBaseRadianAngle = Math.Round(Math.Asin(sinX), 2)
End Function
Public Function GetRightBaseRadianAngle() As Double
Dim x As Double = GetRightSmallBase()
Dim cosX As Double = (Math.Pow(m_rightLeg, 2) + Math.Pow(x, 2) - Math.Pow(GetHeight(), 2)) / (2 * x * m_rightLeg)
GetRightBaseRadianAngle = Math.Round(Math.Acos(cosX), 2)
End Function
Public Function GetLeftBaseDegreeAngle() As Double
Dim x As Double = GetLeftBaseRadianAngle() * 180 / Math.PI
GetLeftBaseDegreeAngle = Math.Round(x, 2)
End Function
Public Function GetRightBaseDegreeAngle() As Double
Dim x As Double = GetRightBaseRadianAngle() * 180 / Math.PI
GetRightBaseDegreeAngle = Math.Round(x, 2)
End Function
Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim trpz As Example = New Example(20, 10, 8, 6)
outputBlock.Text += String.Format("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") & vbCrLf
Dim h As Double = trpz.GetHeight()
outputBlock.Text &= "Trapezoid height is: " + h.ToString() & vbCrLf
Dim dxR As Double = trpz.GetLeftBaseRadianAngle()
outputBlock.Text &= "Trapezoid left base angle is: " + dxR.ToString() + " Radians" & vbCrLf
Dim dyR As Double = trpz.GetRightBaseRadianAngle()
outputBlock.Text &= "Trapezoid right base angle is: " + dyR.ToString() + " Radians" & vbCrLf
Dim dxD As Double = trpz.GetLeftBaseDegreeAngle()
outputBlock.Text &= "Trapezoid left base angle is: " + dxD.ToString() + " Degrees" & vbCrLf
Dim dyD As Double = trpz.GetRightBaseDegreeAngle()
outputBlock.Text &= "Trapezoid left base angle is: " + dyD.ToString() + " Degrees" & vbCrLf
End Sub
End Class
/// <summary>
/// The following class represents simple functionality of the trapezoid.
/// </summary>
class Example
{
private double m_longBase;
private double m_shortBase;
private double m_leftLeg;
private double m_rightLeg;
public Example(double longbase, double shortbase, double leftLeg, double rightLeg)
{
m_longBase = Math.Abs(longbase);
m_shortBase = Math.Abs(shortbase);
m_leftLeg = Math.Abs(leftLeg);
m_rightLeg = Math.Abs(rightLeg);
}
private double GetRightSmallBase()
{
return (Math.Pow(m_rightLeg, 2.0) - Math.Pow(m_leftLeg, 2.0) + Math.Pow(m_longBase, 2.0) + Math.Pow(m_shortBase, 2.0) - 2 * m_shortBase * m_longBase) / (2 * (m_longBase - m_shortBase));
}
public double GetHeight()
{
double x = GetRightSmallBase();
return Math.Sqrt(Math.Pow(m_rightLeg, 2.0) - Math.Pow(x, 2.0));
}
public double GetSquare()
{
return GetHeight() * m_longBase / 2.0;
}
public double GetLeftBaseRadianAngle()
{
double sinX = GetHeight() / m_leftLeg;
return Math.Round(Math.Asin(sinX), 2);
}
public double GetRightBaseRadianAngle()
{
double x = GetRightSmallBase();
double cosX = (Math.Pow(m_rightLeg, 2.0) + Math.Pow(x, 2.0) - Math.Pow(GetHeight(), 2.0)) / (2 * x * m_rightLeg);
return Math.Round(Math.Acos(cosX), 2);
}
public double GetLeftBaseDegreeAngle()
{
double x = GetLeftBaseRadianAngle() * 180 / Math.PI;
return Math.Round(x, 2);
}
public double GetRightBaseDegreeAngle()
{
double x = GetRightBaseRadianAngle() * 180 / Math.PI;
return Math.Round(x, 2);
}
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
Example trpz = new Example(20.0, 10.0, 8.0, 6.0);
outputBlock.Text += String.Format("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") + "\n";
double h = trpz.GetHeight();
outputBlock.Text += "Trapezoid height is: " + h.ToString() + "\n";
double dxR = trpz.GetLeftBaseRadianAngle();
outputBlock.Text += "Trapezoid left base angle is: " + dxR.ToString() + " Radians" + "\n";
double dyR = trpz.GetRightBaseRadianAngle();
outputBlock.Text += "Trapezoid right base angle is: " + dyR.ToString() + " Radians" + "\n";
double dxD = trpz.GetLeftBaseDegreeAngle();
outputBlock.Text += "Trapezoid left base angle is: " + dxD.ToString() + " Degrees" + "\n";
double dyD = trpz.GetRightBaseDegreeAngle();
outputBlock.Text += "Trapezoid left base angle is: " + dyD.ToString() + " Degrees" + "\n";
}
}
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.