Filter löschen
Filter löschen

generate a plane that has the coordinates of a 3D matrix as its boundary

1 Ansicht (letzte 30 Tage)
Hi. I have coordinates of nodes in space ('C'). I would like to generate a plane that has the coordinates of 'C' as an outline.
I am using this code but, as you can see in the figure, the generated 'V_new' plane does not follow the 'C' coordinates exactly. Any suggestions for improving the code?
load C.mat
[~,poly] = freeBoundary(delaunayTriangulation(C(:,1:2)));
[~,loc] = ismember(poly,C(:,1:2),'rows');
V = num2cell([poly,C(loc,3)],1);
V_new = [V{1,1}, V{1,2}, V{1,3}];
figure
patch(V_new(:,1), V_new(:,2),V_new(:,3),'k');
hold on
plot3(C(:,1),C(:,2),C(:,3),'g.','Markersize',20);
axis equal

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 2 Okt. 2023
Verschoben: Bruno Luong am 2 Okt. 2023
Why don't you do the very obvious?
load('C.mat')
patch(C(:,1),C(:,2),C(:,3),'k')
hold on
plot3(C(:,1),C(:,2),C(:,3),'g.','Markersize',20);
axis equal

Weitere Antworten (0)

Produkte


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by