-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTriangleResolver.cs
More file actions
32 lines (27 loc) · 1.36 KB
/
TriangleResolver.cs
File metadata and controls
32 lines (27 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
namespace TriangleLib
{
public enum TriangleType
{
Acute = 0,
Right,
Obtuse
}
public class TriangleResolver
{
private static bool Equals(double value1, double value2)
{
return Math.Abs(value1 - value2) < 0.000001;
}
public TriangleType ResolveTriangleType(double side1, double side2, double side3)
{
var pow1 = Math.Pow(side1, 2);
var pow2 = Math.Pow(side2, 2);
var pow3 = Math.Pow(side3, 2);
if (Equals(pow1, pow2 + pow3) || Equals(pow2, pow1 + pow3) || Equals(pow3, pow1 + pow2)) // По теореме Пифагора в Прямоугольном треугольнике квадрат гипотенузы равен сумме квадратов катетов
return TriangleType.Right;
if (pow1 > pow2 + pow3 || pow2 > pow1 + pow3 || pow3 > pow1 + pow2) // Если квадрат гипотенузы больше суммы квадратов других сторон, противолежащий угол имеет более 90 градусов, т.е. треугольник Тупоугольный
return TriangleType.Obtuse;
return TriangleType.Acute; // Иначе треугольник Остроугольный
}
}
}