public class Triangle extends Shape { //Вписанный равнобедренный прямоугольный треугольник. /* Три варианта расположения вписанного треугольника: * * 1. Один катет совпадает с меньшей стороной. * Второй катет лежит на бќльшей стороне. * * 2. Гипотенуза совпадает с большей стороной. * * 3. Гипотенуза лежит на большей стороне. * Точка пересечений катетов лежит на противоположной стороне. */ 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 } }