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 -cordinates в первый столбец 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] Цирюльник, К.Б., Д. П. Добкин и Х.Т. Хухданпаа. Алгоритм Quickhull для выпуклых оболочек. Транзакции ACM на математическом программном обеспечении, том 22, № 4, декабрь 1996, p 469-483.

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

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