Такой вопрос.
Имеется метод, который в качестве аргумента принимает четырёхугольник (внутри содержит четыре объекта типа
Point.
Point содержит в себе координаты Х и Y). Метод определяет, является ли четырёхугольник трапецией.
Справочно:
Трапеция - это четырёхугольник, у которого две стороны параллельны, а другие две - не параллельны.
Метод
boolean isSidesParallel(side1, side2) определяет, параллельны ли стороны.
Собственно, сам код, который выполняет свою задачу. Но мне не нравится как выглядит return. Как привести его к более удобочитаемому виду и сократить его?
Код (жми)
@Override
public boolean isTrapezoid(Quadrangle quadrangle) {
// создаем точки
Point p1 = quadrangle.getP1();
Point p2 = quadrangle.getP2();
Point p3 = quadrangle.getP3();
Point p4 = quadrangle.getP4();
// создаем стороны АB, BC, CD, DA
Line sideAb = new Line(p1, p2);
Line sideBc = new Line(p2, p3);
Line sideCd = new Line(p3, p4);
Line sideDa = new Line(p1, p4);
// проверка, чтобы две противоположыне стороны были параллельны, а другие - не параллельны
return (isSidesParallel(sideAb, sideCd) && !isSidesParallel(sideBc, sideDa)) || (!isSidesParallel(sideAb, sideCd) && isSidesParallel(sideBc, sideDa));
}