Диаметр множества точек (вращающиеся калиперы)
Версия от 04:25, 8 января 2014; Megabyte (обсуждение | вклад) (Новая страница: «{{В разработке}} Есть множество точек на плоскости. Нужно найти две самые удалённые из них...»)
Эта статья находится в разработке!
Есть множество точек на плоскости. Нужно найти две самые удалённые из них.
Найдём выпуклую оболочку исходного множества и получим более простую задачу: найти две наиболее удалённые вершины в выпуклом многоугольнике. Сделать это можно за линейное время с помощью метода, который называется вращающиеся калиперы (англ. rotating calipers).
Постановка задачи
Пусть
— выпуклый многоугольник, в котором порядок обхода вершин направлен против часовой стрелки, и никакие три последовательные точки не лежат на одной прямой. Найти пару чисел , такие, что максимально.Вращающиеся калиперы
Определение: |
Прямая | называется опорной прямой (англ. line of support) для многоугольника , если его внутренность лежит по одну сторону от , при этом проходит хотя бы через одну из вершин .
|
Так как
и — какие угодно граничные точки фигуры , принадлежащие соответственно прямым и , то из перпендикулярности отрезка к прямым и следует, что ни одна из прямых , не может иметь с фигурой целый общий отрезок. Другими словами, каждая из этих прямых содержит единственную граничную точку фигуры .Лемма: |
Диаметр выпуклого полигона равен максимальному расстоянию между параллельными опорными прямыми. |