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 } }