Выпуклая оболочка N-D
K = convhulln(X)
K = convhulln(X,options)
[K,v] = convhulln(...)
K = convhulln(X)
возвращает индексы K
точек в X
, которые составляют фасеты выпуклой оболочки X
. Если X
содержит 2D координаты или 3-D координаты, то фасеты формируют треугольники или тетраэдры, соответственно. В целом X
может быть m
-by-n
массив, представляющий точки m
в n
- мерное пространство. Если выпуклая оболочка имеет фасеты p
затем, K
имеет размер p
-by-n
.
convhulln
использует Qhull.
K = convhulln(X,options)
задает массив ячеек опций Qhull. Опции по умолчанию:
{'Qt'}
для 2-, 3-. и 4-мерный вход
{'Qt','Qx'}
для 5-мерного входа и выше.
Если options
является []
, опции по умолчанию используются. Для получения дополнительной информации о Qhull и его опциях, смотрите http://www.qhull.org/
.
[K,v] = convhulln(...)
также возвращает объем v
выпуклой оболочки.
Графический вывод вывода convhulln
зависит от значения n
:
Следующий пример иллюстрирует вход options
для convhulln
. Следующие команды
X = [0 0; 0 1e-10; 0 0; 1 1]; K = convhulln(X)
возвратите предупреждение.
Warning: qhull precision warning: The initial hull is narrow (cosine of min. angle is 0.9999999999999998). A coplanar point may lead to a wide facet. Options 'QbB' (scale to unit box) or 'Qbb' (scale last coordinate) may remove this warning. Use 'Pp' to skip this warning.
Чтобы подавить предупреждение, используйте опцию 'Pp'
. Следующая команда передает опцию 'Pp'
, наряду с 'Qt'
по умолчанию, к convhulln
.
K = convhulln(X,{'Qt','Pp'}) K = 1 4 1 2 4 2
convhulln
основан на Qhull [1]. Для получения информации о Qhull смотрите http://www.qhull.org/
. Дополнительные сведения см. в http://www.qhull.org/COPYING.txt
.
[1] Стригите, C. B. Д.П. Добкин и Х.Т. Хухдэнпэа, “Алгоритм Quickhull для Выпуклых оболочек”, Транзакции ACM на Mathematical Software, Издании 22, № 4, декабрь 1996, p. 469-483.