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

3 views (last 30 days)
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

Accepted Answer

Bruno Luong
Bruno Luong on 2 Oct 2023
Moved: Bruno Luong on 2 Oct 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

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!