exponenta event banner

convhulln

N-D выпуклый корпус

Описание

пример

k = convhulln(P) вычисляет N-D выпуклый корпус точек в матрице P.

k = convhulln(P,opts) также задает параметры Qhull, используемые для вычисления выпуклого корпуса.

пример

[k,vol] = convhulln(___) также возвращает том vol выпуклого корпуса для любого из предыдущих синтаксисов.

Примеры

свернуть все

Создайте матрицу из 3-D точек и вычислите выпуклый корпус и его объем.

P = rand(10,3);
[k,vol] = convhulln(P);

Постройте график выпуклого корпуса.

trisurf(k,P(:,1),P(:,2),P(:,3),'FaceColor','cyan')

Figure contains an axes. The axes contains an object of type patch.

Отображение объема выпуклого корпуса.

vol
vol = 0.1857

Входные аргументы

свернуть все

Точки, заданные как матрица, столбцы которой содержат координаты соответствующего размера. Например, чтобы определить набор точек 2-D, поместите координаты X в первый столбец P и соответствующие координаты y во втором столбце.

Параметры Qhull, заданные как массив ячеек символьных векторов, указывающих, какие алгоритмы Qhull использовать. Список опций см. в разделе http://www.qhull.org/html/qh-optq.htm.

По умолчанию opts имеет значение {'Qt'} для 2-, 3- и 4-мерного ввода. Для 5-мерного ввода и выше, opts имеет значение {'Qt','Qx'}.

Выходные аргументы

свернуть все

Индексы, возвращаемые в виде вектора или матрицы.

  • Для 2-D точек, k - вектор столбца, содержащий индексы строк входных точек, составляющих выпуклый корпус, расположенных против часовой стрелки.

  • Для 3-D точек, k - матрица из трех столбцов, где каждая строка представляет грань триангуляции, которая составляет выпуклый корпус. Значения представляют индексы строк входных точек.

  • Для точек N-D k - матрица N-столбцов. Значения представляют индексы строк входных точек.

Объем выпуклого корпуса (площадь для двух измерений), возвращаемый как скаляр.

Совет

  • Используйте plot функция для построения графика вывода convhulln в двух измерениях. Использовать trisurf или trimesh для построения графика вывода convhulln в трех измерениях.

  • Для повышения эффективности алгоритма с 2-D и 3-D входными данными рассмотрите возможность использования convhull функцию или создание triangulation или delaunayTriangulation и с использованием convexHull объектная функция.

Алгоритмы

convhulln основан на Qhull [1]. Дополнительные сведения см. в разделе http://www.qhull.org/. Сведения об авторских правах см. в разделе http://www.qhull.org/COPYING.txt.

Ссылки

[1] Барбер, С.Б., Д. П. Добкин и Х. Т. Хухданпаа. «Алгоритм Квикхолла для выпуклых корпусов.» ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p. 469-483.

Расширенные возможности

.
Представлен до R2006a