plot::hullВычислите выпуклую оболочку набора точек
Блокноты 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.