Как извлечь точки, которые образованы выпуклой оболочкой трехмерного многоугольника в 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;

выпуклый пример

Другие вопросы по тегам