How can I get a point cloud from a patch object?

6 views (last 30 days)
I've downloaded the IGESToolBox from here and brought in a flowpath from CAD. The IGESToolbox plots the supplied file as a patch;
patch('faces',TRI,'vertices',P','FaceColor',clr,'EdgeColor','none');
I would like to extract the point cloud from the patch so I can make a ndgrid or trimesh. However, I can't figure out how to get the data out of TRI and P. I've tried 3 different ways and I just end up with a funky wedge shape instead of the flowpath.
Thanks for looking

Accepted Answer

Kelly Kearney
Kelly Kearney on 18 Jul 2014
I'm assuming from this example that TRI is nx3 and P is 3xm (i.e. your data is 3D)
trimesh uses the same face/vertex input as patch-with-face-vertex:
trimesh(TRI, P(1,:), P(2,:), P(3,:))
If you want the coordinates of all the triangular faces:
vx = P(:,1);
vy = P(:,2);
x = vx(TRI');
y = vy(TRI');

More Answers (1)

Chris Virgin
Chris Virgin on 23 Jul 2014
I didn't know that about trimesh (or I missed it in the documentation).
That's exactly what I needed.
Thanks for your help!

Community Treasure Hunt

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

Start Hunting!