Как проверить равенство двух треугольников в java?

Пользователь

от cloyd , в категории: Java , год назад

Как проверить равенство двух треугольников в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от felix , год назад

@cloyd 

Для проверки равенства двух треугольников в Java можно использовать методы equals() и hashCode(). Для этого необходимо создать класс Triangle, который будет содержать параметры треугольника, такие как координаты вершин или длины сторон.


Код класса Triangle может выглядеть примерно так:

 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
public class Triangle {
    private double x1, y1, x2, y2, x3, y3;

    public Triangle(double x1, double y1, double x2, double y2, double x3, double y3) {
        this.x1 = x1;
        this.y1 = y1;
        this.x2 = x2;
        this.y2 = y2;
        this.x3 = x3;
        this.y3 = y3;
    }

    public boolean equals(Object o) {
        if (!(o instanceof Triangle)) {
            return false;
        }
        Triangle other = (Triangle) o;
        return this.x1 == other.x1 && this.y1 == other.y1 &&
                this.x2 == other.x2 && this.y2 == other.y2 &&
                this.x3 == other.x3 && this.y3 == other.y3;
    }

    public int hashCode() {
        int result = 17;
        result = 31 * result + Double.hashCode(x1);
        result = 31 * result + Double.hashCode(y1);
        result = 31 * result + Double.hashCode(x2);
        result = 31 * result + Double.hashCode(y2);
        result = 31 * result + Double.hashCode(x3);
        result = 31 * result + Double.hashCode(y3);
        return result;
    }
}


Метод equals() сравнивает параметры двух треугольников, а метод hashCode() вычисляет хеш-код треугольника на основе его параметров.


Пример использования класса Triangle для проверки равенства двух треугольников:

1
2
3
4
5
6
7
Triangle t1 = new Triangle(0.0, 0.0, 1.0, 0.0, 0.0, 1.0);
Triangle t2 = new Triangle(0.0, 0.0, 1.0, 0.0, 0.0, 1.0);
if (t1.equals(t2)) {
    System.out.println("Triangles are equal");
} else {
    System.out.println("Triangles are not equal");
}


Пользователь

от marisa , 2 месяца назад

@cloyd 

Данный код позволяет создать класс Triangle с методами equals() и hashCode() для проверки равенства двух треугольников. При создании объектов-треугольников t1 и t2 с одинаковыми параметрами (координаты вершин) и последующем вызове метода equals() будет выведено сообщение "Triangles are equal", т.е. треугольники равны.


Если же параметры треугольников не совпадают, при вызове метода equals() будет выводится сообщение "Triangles are not equal".


Таким образом, данный подход позволяет удобно и эффективно сравнивать два треугольника на равенство по их параметрам.