public class Triangle extends Shape Вписанный равнобедренный прямоугол

 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
33
34
35
36
37
38
39
40
41
42
43
44
public class Triangle extends Shape {
//Вписанный равнобедренный прямоугольный треугольник.
/* Три варианта расположения вписанного треугольника:
*
* 1. Один катет совпадает с меньшей стороной.
* Второй катет лежит на бќльшей стороне.
*
* 2. Гипотенуза совпадает с большей стороной.
*
* 3. Гипотенуза лежит на большей стороне.
* Точка пересечений катетов лежит на противоположной стороне.
*/
public Triangle () {
super("Triangle", 1, 1);
}
@Override
public double getArea() {
double min = getSmallerSide(), max = getBiggerSide();
if (max * max / (min * min) < 2)
return min * min / 2; //1
else
if (max / min < 2)
return max * max / 4; //2
else
return min * min; //3
}
public double getPerimeter() {
double min = getSmallerSide(), max = getBiggerSide();
double sqrt2 = Math.sqrt(2);
if (max * max / (min * min) < 2)
return min * (2 + sqrt2); //1
else
if (max / min < 2)
return max * (1 + sqrt2); //2
else
return 2 * min * (1 + sqrt2); //3
}
}