From: Amir on 29 Jul 2010 17:00 Just wondering if anyone knows of a matlab function(s) which will build a surface from (x,y,z) point cloud? I do this now using CAD software (pro-e) and I mesh the constructed surface for FEA analysis later. I'd much rather use matlab for both the surface construction & meshing (simple quad elements) if possible and not a tremendous task. Thanks in advance for your thoughts/recommendations.
From: Walter Roberson on 29 Jul 2010 19:13 Amir wrote: > Just wondering if anyone knows of a matlab function(s) which will build > a surface from (x,y,z) point cloud? Yes, but unless you want a convex hull, there is no unique solution unless you add additional constraints. For any finite set of points, there are an infinite number of planes that divide the set into two (possibly unequal) subsets that could be considered as top and bottom half-surfaces, possibly with a single-point bridge between them. Without constraints to prevent this kind of arbitrary division, any of the infinite number are as valid as any of the others. Another way of phrasing this is that if your point cloud does not represent the outside skin of a convex object, then there is no unique way of deciding where the skin should follow, not unless you have some additional guidance as to what it should look like.
From: arich82 on 29 Jul 2010 20:00 Walter Roberson <roberson(a)hushmail.com> wrote in message <i2t25l$pkd$1(a)canopus.cc.umanitoba.ca>... > Amir wrote: > > Just wondering if anyone knows of a matlab function(s) which will build > > a surface from (x,y,z) point cloud? > > Yes, but unless you want a convex hull, there is no unique solution unless you > add additional constraints. > > For any finite set of points, there are an infinite number of planes that > divide the set into two (possibly unequal) subsets that could be considered as > top and bottom half-surfaces, possibly with a single-point bridge between > them. Without constraints to prevent this kind of arbitrary division, any of > the infinite number are as valid as any of the others. > > Another way of phrasing this is that if your point cloud does not represent > the outside skin of a convex object, then there is no unique way of deciding > where the skin should follow, not unless you have some additional guidance as > to what it should look like. Assuming you do have the x-y-z co-ords of the convex hull, this is what I usually use: tri = delaunay(x,y); h = trisurf(tri, x, y, z); If not, maybe try this: <http://www.mathworks.com/matlabcentral/fileexchange/8998>. Hope this helps. --Andy
From: Amir on 30 Jul 2010 11:51 Thanks so much Andy & Walter. Very helpful answers.
|
Pages: 1 Prev: Interactive cursor in Matlab plots... Next: Problems with fsolve |