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

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

от cloyd , в категории: Java , 3 месяца назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от felix , 3 месяца назад

@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");
}