public static HashSet <string> GetTypeTriangle(Triangle triangle) { HashSet <string> typeTriangles = new HashSet <string>(); if (triangle == null) { throw new NullReferenceException(); } SidesTriangle sidesTriangle = new SidesTriangle(triangle); if (Math.PythagoreanTheorem(sidesTriangle)) { typeTriangles.Add(TypeTriangle.rectangular); } if (Math.AcuteAngledTriplet(sidesTriangle)) { typeTriangles.Add(TypeTriangle.sharpAngled); } else { typeTriangles.Add(TypeTriangle.obtuse); } if (Math.IsoscelesTriangle(sidesTriangle)) { typeTriangles.Add(TypeTriangle.isosceles); } if (Math.EquilateralTriangle(sidesTriangle)) { typeTriangles.Add(TypeTriangle.isosceles); } if (Math.EquilateralTriangle(sidesTriangle)) { typeTriangles.Add(TypeTriangle.isosceles); } else { if (!typeTriangles.Contains(TypeTriangle.isosceles)) { typeTriangles.Add(TypeTriangle.versatile); } } return(typeTriangles); }
/// <summary> /// Метод, позволяет определить, является ли треугольник равносторонним или разносторонним /// </summary> public static bool EquilateralTriangle(this SidesTriangle sidesTriangle) { return((sidesTriangle.BigSide == sidesTriangle.FirstSmallSide) && (sidesTriangle.FirstSmallSide == sidesTriangle.SecondSmallSide) && (sidesTriangle.BigSide == sidesTriangle.SecondSmallSide)); }
/// <summary> /// Метод, позволяет определить, является ли треугольник равнобедренным /// </summary> public static bool IsoscelesTriangle(this SidesTriangle sidesTriangle) { return((sidesTriangle.BigSide == sidesTriangle.FirstSmallSide) || (sidesTriangle.FirstSmallSide == sidesTriangle.SecondSmallSide) || (sidesTriangle.BigSide == sidesTriangle.SecondSmallSide)); }
/// <summary> /// Метод, позволяет определить, является ли треугольник остроугольным или тупым /// </summary> public static bool AcuteAngledTriplet(this SidesTriangle sidesTriangle) { return((sidesTriangle.BigSide * sidesTriangle.BigSide) < (sidesTriangle.FirstSmallSide * sidesTriangle.FirstSmallSide) + (sidesTriangle.SecondSmallSide * sidesTriangle.SecondSmallSide)); }
/// <summary> /// Теорема Пифагора, позволяет узнать является ли трегольник прямоугольным /// </summary> public static bool PythagoreanTheorem(this SidesTriangle sidesTriangle) { return((sidesTriangle.BigSide * sidesTriangle.BigSide) == (sidesTriangle.FirstSmallSide * sidesTriangle.FirstSmallSide) + (sidesTriangle.SecondSmallSide * sidesTriangle.SecondSmallSide)); }