Помогите отдаю все баллы
Написать класс "многоугольник", содержащий координаты его вершин в порядке обхода против часовой стрелки. Написать способы для вычисления периметра и площади многоугольника.
Ответы
Ответ:
Вот пример реализации класса "Многоугольник" на языке Java:
public class Polygon {
private Point[] vertices;
public Polygon(Point[] vertices) {
this.vertices = vertices;
}
public double perimeter() {
double perimeter = 0;
for (int i = 0; i < vertices.length; i++) {
int j = (i + 1) % vertices.length;
double dx = vertices[j].getX() - vertices[i].getX();
double dy = vertices[j].getY() - vertices[i].getY();
perimeter += Math.sqrt(dx * dx + dy * dy);
}
return perimeter;
}
public double area() {
double area = 0;
for (int i = 0; i < vertices.length; i++) {
int j = (i + 1) % vertices.length;
area += vertices[i].getX() * vertices[j].getY() - vertices[j].getX() * vertices[i].getY();
}
area *= 0.5;
return Math.abs(area);
}
}
В этом примере мы создали класс "Polygon" с конструктором, который принимает массив точек (объектов класса "Point") вершин многоугольника в порядке обхода против часовой стрелки и сохраняет его в приватном атрибуте "vertices".
Пример использования класса:
// Создаем многоугольник с вершинами (0,0), (0,1), (1,1), (1,0)
Point[] vertices = new Point[] { new Point(0, 0), new Point(0, 1), new Point(1, 1), new Point(1, 0) };
Polygon polygon = new Polygon(vertices);
// Вычисляем периметр и площадь многоугольника
double perimeter = polygon.perimeter();
double area = polygon.area();
// Выводим результаты
System.out.println("Периметр: " + perimeter);
System.out.println("Площадь: " + area);
Этот код выведет:
Периметр: 4.0
Площадь: 1.0
Объяснение:
можете пометить как лучший ответ, если помог