Math.Sin Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns the sine of the specified angle.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Shared Function Sin ( _
a As Double _
) As Double
[SecuritySafeCriticalAttribute]
public static double Sin(
double a
)
Parameters
- a
Type: System.Double
An angle, measured in radians.
Return Value
Type: System.Double
The sine of a. If a is equal to NaN, NegativeInfinity, or PositiveInfinity, this method returns NaN.
Remarks
The angle, a, must be in radians. Multiply by Math.PI/180 to convert degrees to radians.
Acceptable values of d range from approximately -9223372036854775295 to approximately 9223372036854775295. For values outside of this range, the Sin method returns d unchanged rather than throwing an exception.
Platform Notes
Silverlight for Windows Phone
The value of Math.Sin(Math.PI/2) is 0.99999999999999989. The value on Windows is 1.
Examples
The following example uses Sin to evaluate certain trigonometric identities for selected angles.
' Example for the trigonometric Math.Sin( Double ) and Math.Cos( Double ) methods.
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
outputBlock.Text &= _
"This example of trigonometric " & _
"Math.Sin( double ) and Math.Cos( double )" & vbCrLf & _
"generates the following output." & vbCrLf & vbCrLf
outputBlock.Text &= _
"Convert selected values for X to radians " & vbCrLf & _
"and evaluate these trigonometric identities:" & vbCrLf
outputBlock.Text &= _
" sin^2(X) + cos^2(X) = 1" & vbCrLf & _
" sin(2 * X) = 2 * sin(X) * cos(X)" & vbCrLf
outputBlock.Text &= " cos(2 * X) = cos^2(X) - sin^2(X)" & vbCrLf
UseSineCosine(outputBlock, 15.0)
UseSineCosine(outputBlock, 30.0)
UseSineCosine(outputBlock, 45.0)
outputBlock.Text &= _
vbCrLf & "Convert selected values for X and Y to radians" & _
vbCrLf & "and evaluate these trigonometric identities:" & vbCrLf
outputBlock.Text &= " sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y)" & vbCrLf
outputBlock.Text &= " cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y)" & vbCrLf
UseTwoAngles(outputBlock, 15.0, 30.0)
UseTwoAngles(outputBlock, 30.0, 45.0)
End Sub 'Main
' Evaluate trigonometric identities with a given angle.
Sub UseSineCosine(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal degrees As Double)
Dim angle As Double = Math.PI * degrees / 180.0
Dim sinAngle As Double = Math.Sin(angle)
Dim cosAngle As Double = Math.Cos(angle)
' Evaluate sin^2(X) + cos^2(X) = 1.
outputBlock.Text &= String.Format( _
vbCrLf & " Math.Sin({0} deg) = {1:E16}" & _
vbCrLf & " Math.Cos({0} deg) = {2:E16}", _
degrees, Math.Sin(angle), Math.Cos(angle)) & vbCrLf
outputBlock.Text &= String.Format( _
"(Math.Sin({0} deg))^2 + (Math.Cos({0} deg))^2 = {1:E16}", _
degrees, sinAngle * sinAngle + cosAngle * cosAngle) & vbCrLf
' Evaluate sin(2 * X) = 2 * sin(X) * cos(X).
outputBlock.Text &= String.Format( _
" Math.Sin({0} deg) = {1:E16}", _
2.0 * degrees, Math.Sin(2.0 * angle)) & vbCrLf
outputBlock.Text &= String.Format( _
" 2 * Math.Sin({0} deg) * Math.Cos({0} deg) = {1:E16}", _
degrees, 2.0 * sinAngle * cosAngle) & vbCrLf
' Evaluate cos(2 * X) = cos^2(X) - sin^2(X).
outputBlock.Text &= String.Format( _
" Math.Cos({0} deg) = {1:E16}", _
2.0 * degrees, Math.Cos(2.0 * angle)) & vbCrLf
outputBlock.Text &= String.Format( _
"(Math.Cos({0} deg))^2 - (Math.Sin({0} deg))^2 = {1:E16}", _
degrees, cosAngle * cosAngle - sinAngle * sinAngle) & vbCrLf
End Sub 'UseSineCosine
' Evaluate trigonometric identities that are functions of two angles.
Sub UseTwoAngles(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal degreesX As Double, ByVal degreesY As Double)
Dim angleX As Double = Math.PI * degreesX / 180.0
Dim angleY As Double = Math.PI * degreesY / 180.0
' Evaluate sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y).
outputBlock.Text &= String.Format( _
vbCrLf & " Math.Sin({0} deg) * Math.Cos({1} deg) +" & _
vbCrLf & " Math.Cos({0} deg) * Math.Sin({1} deg) = {2:E16}", _
degreesX, degreesY, Math.Sin(angleX) * Math.Cos(angleY) + _
Math.Cos(angleX) * Math.Sin(angleY)) & vbCrLf
outputBlock.Text &= String.Format( _
" Math.Sin({0} deg) = {1:E16}", _
degreesX + degreesY, Math.Sin(angleX + angleY)) & vbCrLf
' Evaluate cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y).
outputBlock.Text &= String.Format( _
" Math.Cos({0} deg) * Math.Cos({1} deg) -" & vbCrLf & _
" Math.Sin({0} deg) * Math.Sin({1} deg) = {2:E16}", _
degreesX, degreesY, Math.Cos(angleX) * Math.Cos(angleY) - _
Math.Sin(angleX) * Math.Sin(angleY)) & vbCrLf
outputBlock.Text &= String.Format( _
" Math.Cos({0} deg) = {1:E16}", _
degreesX + degreesY, Math.Cos(angleX + angleY)) & vbCrLf
End Sub 'UseTwoAngles
End Module 'SinCos
' This example of trigonometric Math.Sin( double ) and Math.Cos( double )
' generates the following output.
'
' Convert selected values for X to radians
' and evaluate these trigonometric identities:
' sin^2(X) + cos^2(X) = 1
' sin(2 * X) = 2 * sin(X) * cos(X)
' cos(2 * X) = cos^2(X) - sin^2(X)
'
' Math.Sin(15 deg) = 2.5881904510252074E-001
' Math.Cos(15 deg) = 9.6592582628906831E-001
' (Math.Sin(15 deg))^2 + (Math.Cos(15 deg))^2 = 1.0000000000000000E+000
' Math.Sin(30 deg) = 4.9999999999999994E-001
' 2 * Math.Sin(15 deg) * Math.Cos(15 deg) = 4.9999999999999994E-001
' Math.Cos(30 deg) = 8.6602540378443871E-001
' (Math.Cos(15 deg))^2 - (Math.Sin(15 deg))^2 = 8.6602540378443871E-001
'
' Math.Sin(30 deg) = 4.9999999999999994E-001
' Math.Cos(30 deg) = 8.6602540378443871E-001
' (Math.Sin(30 deg))^2 + (Math.Cos(30 deg))^2 = 1.0000000000000000E+000
' Math.Sin(60 deg) = 8.6602540378443860E-001
' 2 * Math.Sin(30 deg) * Math.Cos(30 deg) = 8.6602540378443860E-001
' Math.Cos(60 deg) = 5.0000000000000011E-001
' (Math.Cos(30 deg))^2 - (Math.Sin(30 deg))^2 = 5.0000000000000022E-001
'
' Math.Sin(45 deg) = 7.0710678118654746E-001
' Math.Cos(45 deg) = 7.0710678118654757E-001
' (Math.Sin(45 deg))^2 + (Math.Cos(45 deg))^2 = 1.0000000000000000E+000
' Math.Sin(90 deg) = 1.0000000000000000E+000
' 2 * Math.Sin(45 deg) * Math.Cos(45 deg) = 1.0000000000000000E+000
' Math.Cos(90 deg) = 6.1230317691118863E-017
' (Math.Cos(45 deg))^2 - (Math.Sin(45 deg))^2 = 2.2204460492503131E-016
'
' Convert selected values for X and Y to radians
' and evaluate these trigonometric identities:
' sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y)
' cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y)
'
' Math.Sin(15 deg) * Math.Cos(30 deg) +
' Math.Cos(15 deg) * Math.Sin(30 deg) = 7.0710678118654746E-001
' Math.Sin(45 deg) = 7.0710678118654746E-001
' Math.Cos(15 deg) * Math.Cos(30 deg) -
' Math.Sin(15 deg) * Math.Sin(30 deg) = 7.0710678118654757E-001
' Math.Cos(45 deg) = 7.0710678118654757E-001
'
' Math.Sin(30 deg) * Math.Cos(45 deg) +
' Math.Cos(30 deg) * Math.Sin(45 deg) = 9.6592582628906831E-001
' Math.Sin(75 deg) = 9.6592582628906820E-001
' Math.Cos(30 deg) * Math.Cos(45 deg) -
' Math.Sin(30 deg) * Math.Sin(45 deg) = 2.5881904510252085E-001
' Math.Cos(75 deg) = 2.5881904510252096E-001
// Example for the trigonometric Math.Sin( double )
// and Math.Cos( double ) methods.
using System;
class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.Text +=
"This example of trigonometric " +
"Math.Sin( double ) and Math.Cos( double )\n" +
"generates the following output.\n" + "\n";
outputBlock.Text +=
"Convert selected values for X to radians \n" +
"and evaluate these trigonometric identities:" + "\n";
outputBlock.Text += " sin^2(X) + cos^2(X) == 1\n" +
" sin(2 * X) == 2 * sin(X) * cos(X)" + "\n";
outputBlock.Text += " cos(2 * X) == cos^2(X) - sin^2(X)" + "\n";
UseSineCosine(outputBlock, 15.0);
UseSineCosine(outputBlock, 30.0);
UseSineCosine(outputBlock, 45.0);
outputBlock.Text +=
"\nConvert selected values for X and Y to radians \n" +
"and evaluate these trigonometric identities:" + "\n";
outputBlock.Text += " sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y)" + "\n";
outputBlock.Text += " cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y)" + "\n";
UseTwoAngles(outputBlock, 15.0, 30.0);
UseTwoAngles(outputBlock, 30.0, 45.0);
}
// Evaluate trigonometric identities with a given angle.
static void UseSineCosine(System.Windows.Controls.TextBlock outputBlock, double degrees)
{
double angle = Math.PI * degrees / 180.0;
double sinAngle = Math.Sin(angle);
double cosAngle = Math.Cos(angle);
// Evaluate sin^2(X) + cos^2(X) == 1.
outputBlock.Text += String.Format(
"\n Math.Sin({0} deg) == {1:E16}\n" +
" Math.Cos({0} deg) == {2:E16}",
degrees, Math.Sin(angle), Math.Cos(angle)) + "\n";
outputBlock.Text += String.Format(
"(Math.Sin({0} deg))^2 + (Math.Cos({0} deg))^2 == {1:E16}",
degrees, sinAngle * sinAngle + cosAngle * cosAngle) + "\n";
// Evaluate sin(2 * X) == 2 * sin(X) * cos(X).
outputBlock.Text += String.Format(
" Math.Sin({0} deg) == {1:E16}",
2.0 * degrees, Math.Sin(2.0 * angle)) + "\n";
outputBlock.Text += String.Format(
" 2 * Math.Sin({0} deg) * Math.Cos({0} deg) == {1:E16}",
degrees, 2.0 * sinAngle * cosAngle) + "\n";
// Evaluate cos(2 * X) == cos^2(X) - sin^2(X).
outputBlock.Text += String.Format(
" Math.Cos({0} deg) == {1:E16}",
2.0 * degrees, Math.Cos(2.0 * angle)) + "\n";
outputBlock.Text += String.Format(
"(Math.Cos({0} deg))^2 - (Math.Sin({0} deg))^2 == {1:E16}",
degrees, cosAngle * cosAngle - sinAngle * sinAngle) + "\n";
}
// Evaluate trigonometric identities that are functions of two angles.
static void UseTwoAngles(System.Windows.Controls.TextBlock outputBlock, double degreesX, double degreesY)
{
double angleX = Math.PI * degreesX / 180.0;
double angleY = Math.PI * degreesY / 180.0;
// Evaluate sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y).
outputBlock.Text += String.Format(
"\n Math.Sin({0} deg) * Math.Cos({1} deg) +\n" +
" Math.Cos({0} deg) * Math.Sin({1} deg) == {2:E16}",
degreesX, degreesY, Math.Sin(angleX) * Math.Cos(angleY) +
Math.Cos(angleX) * Math.Sin(angleY)) + "\n";
outputBlock.Text += String.Format(
" Math.Sin({0} deg) == {1:E16}",
degreesX + degreesY, Math.Sin(angleX + angleY)) + "\n";
// Evaluate cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y).
outputBlock.Text += String.Format(
" Math.Cos({0} deg) * Math.Cos({1} deg) -\n" +
" Math.Sin({0} deg) * Math.Sin({1} deg) == {2:E16}",
degreesX, degreesY, Math.Cos(angleX) * Math.Cos(angleY) -
Math.Sin(angleX) * Math.Sin(angleY)) + "\n";
outputBlock.Text += String.Format(
" Math.Cos({0} deg) == {1:E16}",
degreesX + degreesY, Math.Cos(angleX + angleY)) + "\n";
}
}
/*
This example of trigonometric Math.Sin( double ) and Math.Cos( double )
generates the following output.
Convert selected values for X to radians
and evaluate these trigonometric identities:
sin^2(X) + cos^2(X) == 1
sin(2 * X) == 2 * sin(X) * cos(X)
cos(2 * X) == cos^2(X) - sin^2(X)
Math.Sin(15 deg) == 2.5881904510252074E-001
Math.Cos(15 deg) == 9.6592582628906831E-001
(Math.Sin(15 deg))^2 + (Math.Cos(15 deg))^2 == 1.0000000000000000E+000
Math.Sin(30 deg) == 4.9999999999999994E-001
2 * Math.Sin(15 deg) * Math.Cos(15 deg) == 4.9999999999999994E-001
Math.Cos(30 deg) == 8.6602540378443871E-001
(Math.Cos(15 deg))^2 - (Math.Sin(15 deg))^2 == 8.6602540378443871E-001
Math.Sin(30 deg) == 4.9999999999999994E-001
Math.Cos(30 deg) == 8.6602540378443871E-001
(Math.Sin(30 deg))^2 + (Math.Cos(30 deg))^2 == 1.0000000000000000E+000
Math.Sin(60 deg) == 8.6602540378443860E-001
2 * Math.Sin(30 deg) * Math.Cos(30 deg) == 8.6602540378443860E-001
Math.Cos(60 deg) == 5.0000000000000011E-001
(Math.Cos(30 deg))^2 - (Math.Sin(30 deg))^2 == 5.0000000000000022E-001
Math.Sin(45 deg) == 7.0710678118654746E-001
Math.Cos(45 deg) == 7.0710678118654757E-001
(Math.Sin(45 deg))^2 + (Math.Cos(45 deg))^2 == 1.0000000000000000E+000
Math.Sin(90 deg) == 1.0000000000000000E+000
2 * Math.Sin(45 deg) * Math.Cos(45 deg) == 1.0000000000000000E+000
Math.Cos(90 deg) == 6.1230317691118863E-017
(Math.Cos(45 deg))^2 - (Math.Sin(45 deg))^2 == 2.2204460492503131E-016
Convert selected values for X and Y to radians
and evaluate these trigonometric identities:
sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y)
cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y)
Math.Sin(15 deg) * Math.Cos(30 deg) +
Math.Cos(15 deg) * Math.Sin(30 deg) == 7.0710678118654746E-001
Math.Sin(45 deg) == 7.0710678118654746E-001
Math.Cos(15 deg) * Math.Cos(30 deg) -
Math.Sin(15 deg) * Math.Sin(30 deg) == 7.0710678118654757E-001
Math.Cos(45 deg) == 7.0710678118654757E-001
Math.Sin(30 deg) * Math.Cos(45 deg) +
Math.Cos(30 deg) * Math.Sin(45 deg) == 9.6592582628906831E-001
Math.Sin(75 deg) == 9.6592582628906820E-001
Math.Cos(30 deg) * Math.Cos(45 deg) -
Math.Sin(30 deg) * Math.Sin(45 deg) == 2.5881904510252085E-001
Math.Cos(75 deg) == 2.5881904510252096E-001
*/
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.