график::
Вычислите выпуклую оболочку набора точек
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
plot::hull(L
)
plot::hull
вычисляет выпуклую оболочку списка точек в любой размерности, т.е. самую маленькую выпуклую область, содержащую все точки. Такая область ограничена симплексами (прямые линии в плоскости, треугольники в 3D) и именно этими симплексами, plot::hull
возвращается.
Несмотря на то, что plot::hull
принимает и возвращает значения с плавающей точкой, фактические вычисления происходят в аппаратных плавающих точках и поэтому не затронуты значением DIGITS
.
Мы генерируем список случайных точек и вычисляем их выпуклую оболочку:
X := stats::uniformRandom(0, 20): l := [[X(), X()] $ i = 1..10]: h := plot::hull(l):
Выпуклая оболочка возвращена как списки списков, как принято plot::Polygon2d
:
h[1]
plot(plot::PointList2d(l), plot::Polygon2d(t) $ t in h, Closed, PointSize=2)
Выпуклую оболочку списка точек в 3D также легко визуализировать:
l := [[x, y, z] $ y = z..x $ z = -x..x $ x = 0..10]: h := plot::hull(l): plot(plot::PointList3d(l, PointSize=1), plot::Polygon3d(t) $ t in h, Closed, Filled, FillColor=RGB::LightOrange.[0.6])
|
Список точек, которые даны как списки действительных значений |
Список симплекс размерности меньше, чем та из точек в L
, данном как списки списков значений с плавающей точкой.
plot::hull
использует qhull от Центра Геометрии Миннесотского университета, см. www.qhull.org.