Как извлечь точки, которые образованы выпуклой оболочкой трехмерного многоугольника в Matlab, используя функции выпуклой оболочки?
Я использую различные функции выпуклой оболочки в Matlab, чтобы найти координаты точек, которые образуют выпуклую оболочку. однако эти функции возвращают матрицу треугольников. Как я могу указать эти точки? Благодарю. Sepideh
1 ответ
Я не уверен, что полностью понимаю ваш вопрос. Может быть, если следующее не прояснит, что вы можете отредактировать ваше сообщение, чтобы включить название функции MATLAB, которую вы используете, и фрагмент кода?
convhull
Функция в MATLAB возвращает индекс координат в выпуклой оболочке.
В следующем примере (x(k), y(k))
координаты. (взято прямо из конвоя док)
xx = -1:.05:1; yy = abs(sqrt(xx));
[x,y] = pol2cart(xx,yy);
k = convhull(x,y);
plot(x(k),y(k),'r-',x,y,'b+')
Это то же самое, если вы используете convexhull
вместо этого ( выпуклый документ).
x = rand(10,1);
y = rand(10,1);
dt = DelaunayTri(x,y);
k = convexHull(dt);
plot(x,y, '.', 'markersize',10);
hold on;
plot(x(k), y(k), 'r');
hold off;