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 object. The axes object contains an object of type patch.

Отобразите объем выпуклой оболочки.

vol
vol = 0.1857

Входные параметры

свернуть все

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

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

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

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

свернуть все

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

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

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

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

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

Советы

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

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

Алгоритмы

convhulln основан на Qhull [1]. Для получения информации см. https://www.qhull.org/. Дополнительные сведения см. в https://www.qhull.org/COPYING.txt.

Ссылки

[1] Стригите, C.B., Д.П. Добкин и Х.Т. Хухдэнпэа. “Алгоритм Quickhull для Выпуклых оболочек”. Транзакции ACM на Mathematical Software, Издании 22, № 4, декабрь 1996, p 469–483.

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

Смотрите также

| | |

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