示例#1
0
        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);
        }
示例#2
0
 /// <summary>
 /// Метод, позволяет определить, является ли треугольник равносторонним или разносторонним
 /// </summary>
 public static bool EquilateralTriangle(this SidesTriangle sidesTriangle)
 {
     return((sidesTriangle.BigSide == sidesTriangle.FirstSmallSide) && (sidesTriangle.FirstSmallSide == sidesTriangle.SecondSmallSide) && (sidesTriangle.BigSide == sidesTriangle.SecondSmallSide));
 }
示例#3
0
 /// <summary>
 /// Метод, позволяет определить, является ли треугольник равнобедренным
 /// </summary>
 public static bool IsoscelesTriangle(this SidesTriangle sidesTriangle)
 {
     return((sidesTriangle.BigSide == sidesTriangle.FirstSmallSide) || (sidesTriangle.FirstSmallSide == sidesTriangle.SecondSmallSide) || (sidesTriangle.BigSide == sidesTriangle.SecondSmallSide));
 }
示例#4
0
 /// <summary>
 /// Метод, позволяет определить, является ли треугольник остроугольным или тупым
 /// </summary>
 public static bool AcuteAngledTriplet(this SidesTriangle sidesTriangle)
 {
     return((sidesTriangle.BigSide * sidesTriangle.BigSide) < (sidesTriangle.FirstSmallSide * sidesTriangle.FirstSmallSide) + (sidesTriangle.SecondSmallSide * sidesTriangle.SecondSmallSide));
 }
示例#5
0
 /// <summary>
 /// Теорема Пифагора, позволяет узнать является ли трегольник прямоугольным
 /// </summary>
 public static bool PythagoreanTheorem(this SidesTriangle sidesTriangle)
 {
     return((sidesTriangle.BigSide * sidesTriangle.BigSide) == (sidesTriangle.FirstSmallSide * sidesTriangle.FirstSmallSide) + (sidesTriangle.SecondSmallSide * sidesTriangle.SecondSmallSide));
 }