Мне даны кординаты n точек на плоскости. Как узнать, являются ли они вершинами n-угольника?

Спасибо.
3 года назад от LottieHill9

2 Ответы



0 голосов
Проверить каждую тройку точек на предмет лежат ли они на одной прямой. Если ответ отрицательный, все n точек являются вершинами n-угольника.
Или вас интересует конкретно выпуклый многоугольник?
3 года назад от Василий Лоханкин
0 голосов
Это зависит от того, имешь ли ты в виду правильный многоугольник, любой многоугольник или любой не самопересекающийся многоугольник. Если ты имешь в виду любой многоугольник, то ты всегда можешь создать не самопересекающийся многоугольник из заданного набора точек. Найти минимальную - это пример задачи коммивояжера.

Если же ты имешь в виду правильный многоугольник, возьми любые три точки и найди круг, проходящий через них. Если какая-либо из оставшихся точек не находится на окружности, то они не являются вершинами правильного многоугольника. В противном случае отсортируй точки по углу, который они образуют с центром круга, перебери точки в отсортированном порядке и убедись, что расстояние между каждой парой соседних точек постоянно.
3 года назад от Владимир Горожанкин

Связанные вопросы