noname00.pas
29-11-2001, 15:41
Выпуклая оболочка для некоторого множества точек - это выпуклый многоугольник с вершинами в точках данного множества, причём всё точки данного множества лежат внутри многоугольника или на его рёбрах.
1. Находим пару точек A(x1, y1) и B(x2, y2)таких, что все другие точки лежат по одну сторону от прямой, на которой лежит отрезок AB. Эти две точки будут включены в выпуклую оболочку
Это можно сделать например полным перебором всех вариантов. А можно и не полным перебором. Например можно найти точку с наименьшей абсциссой и перебором найти для неё пару.
2. Для одной из точек (ну пусть будет B) находим точку C (не совпадающую с A) такую, что все другие точки лежат по одну сторону от прямой, на которой лежит отрезок BС.
Включаем точку C в нашу выпуклую оболочку.
3. По аналогии со 2-м пунктом находим для каждой новой точки такую точку, что все другие точки по одну сторону от прямой...
И так до тех пор, пока новая найденная нами точка не совпадёт с точкой A.
Я понятно объяснил, или может стоит запостить пример програмки?
ПС Я слышал такое странное название для этого метода - "Метод заворачивания подарков"
1. Находим пару точек A(x1, y1) и B(x2, y2)таких, что все другие точки лежат по одну сторону от прямой, на которой лежит отрезок AB. Эти две точки будут включены в выпуклую оболочку
Это можно сделать например полным перебором всех вариантов. А можно и не полным перебором. Например можно найти точку с наименьшей абсциссой и перебором найти для неё пару.
2. Для одной из точек (ну пусть будет B) находим точку C (не совпадающую с A) такую, что все другие точки лежат по одну сторону от прямой, на которой лежит отрезок BС.
Включаем точку C в нашу выпуклую оболочку.
3. По аналогии со 2-м пунктом находим для каждой новой точки такую точку, что все другие точки по одну сторону от прямой...
И так до тех пор, пока новая найденная нами точка не совпадёт с точкой A.
Я понятно объяснил, или может стоит запостить пример програмки?
ПС Я слышал такое странное название для этого метода - "Метод заворачивания подарков"