Нахождение выпуклой оболочки
В системе MATLAB определена функция вычисления точек выпуклой оболочки:
- convhull (х,у) – возвращает индексы тех точек, задаваемых векторами х и у, которые лежат на выпуклой оболочке;
- convhull(x,y,TRI) – использует триангуляцию, полученную в результате применения функции триангуляции Делоне del aunay, вместо того чтобы вычислять ее самостоятельно. Пример:
>
>
xx
=
-
0.8
:
0.03
:
0.8
;
>
>
yy
=
abs(sqrt(xx));
>
>
[x,y]
=
pol2cart(xx,yy);
>
>
k
=
convhuTI(x,y);
>
>
plot(x(k),y(k).
'r:'
,x,y,
'g*'
)
Рис. 17.2. Пример использования функции convhull
Рисунок 17.2 иллюстрирует применение функции convhull для построения выпуклой оболочки. Функция convhulln вычисляет n-мерную выпуклую поверхность, основана на алгоритме qhull.