These are some equations you can use to calculate Sides and Angles of triangles. Correctly used, one may solve the entire triangle with just a few sides and angles.
vb Code:
#Region " Sines " Private Function FindSineAngle(ByVal Side1 As Double, ByVal Side2 As Double, ByVal Angle As Double) As Double Return RadianToDegree(Math.Asin((Side1 / Side2) * (Math.Sin(DegreeToRadian(Angle))))) End Function Private Function FindSineSide(ByVal Side As Double, ByVal Angle1 As Double, ByVal Angle2 As Double) As Double Return Side * ((Math.Sin(DegreeToRadian(Angle1)) / Math.Sin(DegreeToRadian(Angle2)))) End Function #End Region #Region " Cosines " Friend Function FindCosineSide(ByVal Side1 As Double, ByVal Side2 As Double, ByVal Angle As Double) As Double 'Get our variables setup and preprocessed for ease Dim Side1A As Double = Side1 ^ 2.0R Dim Side2A As Double = Side2 ^ 2.0R 'Setup Formula Return Math.Sqrt((Side1A + Side2A) - (2.0R * Side1 * Side2 * System.Math.Cos(DegreeToRadian(Angle)))) End Function Private Function FindCosineAngle(ByVal A As Double, ByVal B As Double, ByVal C As Double, ByVal Angle As CosineAngles) As Double Dim SideA As Double = A ^ 2.0R Dim SideB As Double = B ^ 2.0R Dim SideC As Double = C ^ 2.0R Dim Output As Double = Double.NaN Select Case Angle Case CosineAngles.AngleA Output = RadianToDegree(Math.Acos((SideA - SideB - SideC) / (-2.0R * B * C))) Case CosineAngles.AngleB Output = RadianToDegree(Math.Acos((SideB - SideA - SideC) / (-2.0R * A * C))) Case CosineAngles.AngleC Output = RadianToDegree(Math.Acos((SideC - SideB - SideA) / (-2.0R * A * B))) End Select Return Output End Function #End Region
Enjoy.




Reply With Quote