Math Class
Assembly: mscorlib (in mscorlib.dll)
The following code sample uses several mathematical and trigonometric functions from the Math class to calculate the inner angles of a trapezoid.
'The following class represents simple functionallity of the Trapezoid Class MathTrapezoidSample 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 Main() Dim trpz As MathTrapezoidSample = New MathTrapezoidSample(20, 10, 8, 6) Console.WriteLine("The trpezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0") Dim h As Double = trpz.GetHeight() Console.WriteLine("Trapezoid height is: " + h.ToString()) Dim dxR As Double = trpz.GetLeftBaseRadianAngle() Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians") Dim dyR As Double = trpz.GetRightBaseRadianAngle() Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians") Dim dxD As Double = trpz.GetLeftBaseDegreeAngle() Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees") Dim dyD As Double = trpz.GetRightBaseDegreeAngle() Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees") End Sub End Class
/// <summary>
/// The following class represents simple functionallity of the Trapezoid
/// </summary>
class MathTrapezoidSample
{
private double mLongBase;
private double mShortBase;
private double mLeftLeg;
private double mRightLeg;
public MathTrapezoidSample(double longBase, double shortBase,
double leftLeg, double rightLeg)
{
mLongBase = System.Math.Abs(longBase);
mShortBase = System.Math.Abs(shortBase);
mLeftLeg = System.Math.Abs(leftLeg);
mRightLeg = System.Math.Abs(rightLeg);
} //MathTrapezoidSample
private double GetRightSmallBase()
{
return (System.Math.Pow(mRightLeg, 2.0)
- System.Math.Pow(mLeftLeg, 2.0)
+ System.Math.Pow(mLongBase, 2.0)
+ System.Math.Pow(mShortBase, 2.0)
- 2 * mShortBase * mLongBase) / (2 * (mLongBase - mShortBase));
} //GetRightSmallBase
public double GetHeight()
{
double x = GetRightSmallBase();
return System.Math.Sqrt(System.Math.Pow(mRightLeg, 2.0)
- System.Math.Pow(x, 2.0));
} //GetHeight
public double GetSquare()
{
return GetHeight() * mLongBase / 2.0;
} //GetSquare
public double GetLeftBaseRadianAngle()
{
double sinX = GetHeight() / mLeftLeg;
return System.Math.Round(System.Math.Asin(sinX), 2);
} //GetLeftBaseRadianAngle
public double GetRightBaseRadianAngle()
{
double x = GetRightSmallBase();
double cosX = (System.Math.Pow(mRightLeg, 2.0)
+ System.Math.Pow(x, 2.0)
- System.Math.Pow(GetHeight(), 2.0)) / (2 * x * mRightLeg);
return System.Math.Round(System.Math.Acos(cosX), 2);
} //GetRightBaseRadianAngle
public double GetLeftBaseDegreeAngle()
{
double x = GetLeftBaseRadianAngle() * 180 / System.Math.PI;
return System.Math.Round(x, 2);
} //GetLeftBaseDegreeAngle
public double GetRightBaseDegreeAngle()
{
double x = GetRightBaseRadianAngle() * 180 / System.Math.PI;
return System.Math.Round(x, 2);
} //GetRightBaseDegreeAngle
public static void main(String[] args)
{
MathTrapezoidSample trpz =
new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0);
Console.WriteLine("The trpezoid's bases are 20.0 and 10.0,"
+ " the trapezoid's legs are 8.0 and 6.0");
double h = trpz.GetHeight();
Console.WriteLine("Trapezoid height is: "
+ System.Convert.ToString(h));
double dxR = trpz.GetLeftBaseRadianAngle();
Console.WriteLine("Trapezoid left base angle is: "
+ System.Convert.ToString(dxR) + " Radians");
double dyR = trpz.GetRightBaseRadianAngle();
Console.WriteLine("Trapezoid right base angle is: "
+ System.Convert.ToString(dyR) + " Radians");
double dxD = trpz.GetLeftBaseDegreeAngle();
Console.WriteLine("Trapezoid left base angle is: "
+ System.Convert.ToString(dxD) + " Degrees");
double dyD = trpz.GetRightBaseDegreeAngle();
Console.WriteLine("Trapezoid left base angle is: "
+ System.Convert.ToString(dyD) + " Degrees");
} //main
} //MathTrapezoidSample
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.